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) 下载JDKhadoop安装包并安装(默认下载的安装包都放在/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 [email protected]

# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

# 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 [email protected]

# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

# 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 [email protected]

# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

# ssh 10.0.0.101 (测试)

# ssh 10.0.0.102 (测试)

2.4、hadoop集群配置

a) Hadoop主要配置文件

文件名 格式 描述
core-site.xml Hadoop配置 XML HadoopCore的配置项, 例如HDFSMapReduce常用的IO设置等. 配置分布式文件系统的 URL.
hdfs-site.xml Hadoop配置 XML Hadoop守护进程的配置项,包括namenode,辅助namenodedatanode. 配置 nameNodedataNode 的本地目录信息
mapred-site.xml Hadoop配置 XML MapReduce守护进程配置项,包括jobtrackertasktracker. 配置其使用 Yarn 框架执行 map-reduce 处理程序
Yarn-site.xml Hadoop配置 XML 配置 ResourceManagerNodeManager 的通信端口,web 监控端口等.
hadoop-env.sh Bash脚本 加载运行hadoop所需的变量。
yarn-env.sh Bash脚本 加载运行yarn框架所需的变量。
hadoop-metrics.properties Java属性 控制metrics Hadoop上如何发布的属性。
log4j.properties Java属性 系统日志文件,namenode审计日志,tasktracker子进程的任务日志的属性。
slaves 纯文本 运行datanodetasktracker的机器列表(每行一个)


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

====== 配置开始 ======

# mkdir /data/hadoop-2.5.1/{logs,temp}

# vim core-site.xml

 

    

       hadoop.tmp.dir 

       /home/hadoop/tmp 

       Abase for other temporarydirectories. 

    

    

       fs.defaultFS 

       hdfs://node1:9000 

    

    

       io.file.buffer.size 

       4096 

    

 

# vim hdfs-site.xml

 

    

       dfs.nameservices 

       hadoop-cluster1 

    

    

       dfs.namenode.secondary.http-address 

       node1:50090 

    

    

       dfs.namenode.name.dir 

       /data/hadoop-2.5.1/dfs/name 

    

    

       dfs.datanode.data.dir 

       /data/hadoop-2.5.1/dfs/data 

    

     

       dfs.replication 

       2 

    

    

       dfs.webhdfs.enabled 

       true 

    

 

# mv mapred-site.xml.template mapred-site.xml

# vim mapred-site.xml

 

    

       mapreduce.framework.name 

       yarn 

    

    

       mapreduce.jobtracker.http.address 

       node1:50030 

    

    

       mapreduce.jobhistory.address 

       node1:10020 

    

    

       mapreduce.jobhistory.webapp.address 

       node1:19888 

     

 

# vim Yarn-site.xml

  

 

    

       yarn.nodemanager.aux-services 

       mapreduce_shuffle 

    

    

       yarn.resourcemanager.address 

       node1:8032 

    

    

       yarn.resourcemanager.scheduler.address 

       node1:8030 

    

    

       yarn.resourcemanager.resource-tracker.address 

       node1:8031 

    

    

       yarn.resourcemanager.admin.address 

       node1:8033 

    

    

       yarn.resourcemanager.webapp.address 

       node1:8088 

    

 

# 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 HDFShttp://10.0.0.101:50070/   #hadoop-commonhadoop-hdfs中定义的

Yarn resourceManagerhttp://10.0.0.101:8088/ #yarn-site.xml中定义的