Hadoop集群安装部署与配置-20141119

1、集群环境说明

主机列表


主机名

ip

role

系统版本

node1

10.0.0.101

master

rhel6.5

node2

10.0.0.102

slave

rhel6.5

node3

10.0.0.103

slave

rhel6.5


  1. JDK version: java 1.8 (download)
  2. hadoop version: hadoop-2.5.1 (download)

2、集群环境配置之旅

2.1、JDK与hadoop安装

a) 下载JDK和hadoop安装包并安装(默认下载的安装包都放在/opt下)

# wget http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jdk-8u25-linux-x64.tar.gz
# wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.5.1/hadoop-2.5.1.tar.gz
# rpm -qa | grep java  (如果存在其他版本,使用“rpm -e 包名”进行删除)  
# mkdir /usr/java
# tar -zxf jdk-8u25-linux-x64.tar.gz -C /usr/java
# tar -zxf hadoop-2.5.1.tar.gz -C /data
# vim /etc/profile (添加下面的内容)
exportHADOOP_HOME_WARN_SUPPRESS=1
exportHADOOP_HOME=/data/hadoop-2.5.1
exportJAVA_HOME=/usr/java/jdk1.8.0_25
exportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
HADOOP_CONF_DIR=/data/hadoop-2.5.1/etc/hadoop
exportHADOOP_CONF_DIR
HADOOP_LOG_DIR=/data/hadoop-2.5.1/logs
exportHADOOP_LOG_DIR
exportPATH=$PATH:/data/hadoop-2.5.1/bin
# source /etc/profile
# echo $JAVA_HOME; java -version (测试)

 

特别提示:配置java环境需要在每个node上执行一次

2.2、修改hosts文件

# vim /etc/hosts (添加如下内容)
         10.0.0.101node1
         10.0.0.102node2
         10.0.0.103node3

 

特别提示:上面的操作需要在每一个node上执行一次

2.3、配置ssh免密码连入

a) 在10.0.0.101上执行下面的命令

# ssh-keygen -t rsa
# cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.102
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.103
# ssh 10.0.0.102 (测试)
# ssh 10.0.0.103 (测试)

 

b) 在10.0.0.102上执行下面的命令

# ssh-keygen -t rsa
# cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.101 
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.103
# ssh 10.0.0.101 (测试)
# ssh 10.0.0.103 (测试)

 

C)     在10.0.0.103上执行下面的命令

# ssh-keygen -t rsa
# cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.101 
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.102
# ssh 10.0.0.101 (测试)
# ssh 10.0.0.102 (测试)

2.4、hadoop集群配置

a) Hadoop主要配置文件


文件名

格式

描述

core-site.xml

Hadoop配置 XML

HadoopCore的配置项, 例如HDFS和MapReduce常用的IO设置等. 配置分布式文件系统的 URL.

hdfs-site.xml

Hadoop配置 XML

Hadoop守护进程的配置项,包括namenode,辅助namenode和datanode等. 配置 nameNode,dataNode 的本地目录信息

mapred-site.xml

Hadoop配置 XML

MapReduce守护进程配置项,包括jobtracker和tasktracker. 配置其使用 Yarn 框架执行 map-reduce 处理程序

Yarn-site.xml

Hadoop配置 XML

配置 ResourceManager,NodeManager 的通信端口,web 监控端口等.

hadoop-env.sh

Bash脚本

加载运行hadoop所需的变量。

yarn-env.sh

Bash脚本

加载运行yarn框架所需的变量。

hadoop-metrics.properties

Java属性

控制metrics 在Hadoop上如何发布的属性。

log4j.properties

Java属性

系统日志文件,namenode审计日志,tasktracker子进程的任务日志的属性。

slaves

纯文本

运行datanode和tasktracker的机器列表(每行一个)。


b) 进入/data/hadoop-2.5.1/etc/hadoop,并进行下面的配置

====== 配置开始
# mkdir /data/hadoop-2.5.1/{logs,temp}
# vim core-site.xml
<configuration> 
   <property> 
       <name>hadoop.tmp.dir</name> 
       <value>/home/hadoop/tmp</value> 
       <description>Abase for other temporarydirectories.</description> 
   </property> 
   <property> 
       <name>fs.defaultFS</name> 
       <value>hdfs://node1:9000</value> 
   </property> 
   <property> 
       <name>io.file.buffer.size</name> 
       <value>4096</value> 
   </property> 
</configuration>
 
# vim hdfs-site.xml
<configuration> 
   <property> 
       <name>dfs.nameservices</name> 
       <value>hadoop-cluster1</value> 
   </property> 
   <property> 
       <name>dfs.namenode.secondary.http-address</name> 
       <value>node1:50090</value> 
   </property> 
   <property> 
       <name>dfs.namenode.name.dir</name> 
       <value>/data/hadoop-2.5.1/dfs/name</value> 
   </property> 
   <property> 
       <name>dfs.datanode.data.dir</name> 
       <value>/data/hadoop-2.5.1/dfs/data</value> 
   </property> 
    <property> 
       <name>dfs.replication</name> 
       <value>2</value> 
   </property> 
   <property> 
       <name>dfs.webhdfs.enabled</name> 
       <value>true</value> 
   </property> 
</configuration>
 
# mv mapred-site.xml.template mapred-site.xml
# vim mapred-site.xml
<configuration> 
   <property> 
       <name>mapreduce.framework.name</name> 
       <value>yarn</value> 
   </property> 
   <property> 
       <name>mapreduce.jobtracker.http.address</name> 
       <value>node1:50030</value> 
   </property> 
   <property> 
       <name>mapreduce.jobhistory.address</name> 
       <value>node1:10020</value> 
   </property> 
   <property> 
       <name>mapreduce.jobhistory.webapp.address</name> 
       <value>node1:19888</value> 
    </property> 
</configuration>
 
# vim Yarn-site.xml
<configuration>  
<!-- Site specific YARN configurationproperties --> 
   <property> 
       <name>yarn.nodemanager.aux-services</name> 
       <value>mapreduce_shuffle</value> 
   </property> 
   <property> 
       <name>yarn.resourcemanager.address</name> 
       <value>node1:8032</value> 
   </property> 
   <property> 
       <name>yarn.resourcemanager.scheduler.address</name> 
       <value>node1:8030</value> 
   </property> 
   <property> 
       <name>yarn.resourcemanager.resource-tracker.address</name> 
       <value>node1:8031</value> 
   </property> 
   <property> 
       <name>yarn.resourcemanager.admin.address</name> 
       <value>node1:8033</value> 
   </property> 
   <property> 
       <name>yarn.resourcemanager.webapp.address</name> 
       <value>node1:8088</value> 
   </property> 
</configuration>
 
# hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_25
 
# yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_25
 
# vim slaves
node2
node3

====== 配置结束

2.5、分发hadoop到slave

# rsync -avz /data/hadoop-2.5.1 root@node2:/data/
#rsync -avz /data/hadoop-2.5.1 root@node3:/data/

2.6、格式化文件系统

# cd /data/hadoop-2.5.1
# bin/hdfs namenode -format

3、hadoop服务启动与停止

3.1、启动服务

# cd /data/hadoop-2.5.1
# sbin/start-dfs.sh
# sbin/start-yarn.sh

3.2、停止服务

# cd /data/hadoop-2.5.1
# sbin/stop-dfs.sh
# sbin/stop-yarn.sh

4、验证

4.1、查看启动的进程

# jps

4.2、通过浏览器访问

Cluster HDFS:http://10.0.0.101:50070/   #在hadoop-common和hadoop-hdfs中定义的

Yarn resourceManager:http://10.0.0.101:8088/ #在yarn-site.xml中定义的