Ubantu下搭建Hadoop2.x完全分布式集群

原文地址:http://jingyan.baidu.com/article/27fa73269c02fe46f9271f45.html

 

一、      工具/原料

·        linux系统(本篇使用的是CentOS v6.5

·        Hadoop安装包(本篇使用的是hadoop v2.6.0

二、      环境要求

1.    1

  需要安装JDK6.0以上版本(可自行解压安装或使用自带的软件安装包,如yum)


  

2.    2

  需要无密码登录的SSH环境(安装ssh及sshd,具体配置步骤在后面介绍)


  

END

三、      安装/配置步骤

1.    1

  配置hosts文件,将主机名和对应IP地址映射。如图中Master、Slave1和Slave2是我们要搭建分布式环境的机器。Master为主机,Slavex为从机。


  

2.    2

  配置SSH的无密码登录:可新建专用用户hadoop进行操作,cd命令进入所属目录下,输入以下指令(已安装ssh)

  ssh-keygen -t rsa -P ""

  cat .ssh/id_rsa.pub>>.ssh/authorized_keys

  解释一下,第一条生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用“”空字符串表示无密码。

  第二条命令将生成的密钥写入authorized_keys文件。

  这时输入 ssh localhost,弹出写入提示后回车,便可无密码登录本机。同理,将authorized_keys文件 通过 scp命令拷贝到其它主机相同目录下,则可无密码登录其它机器。


  Ubantu下搭建Hadoop2.x完全分布式集群_第1张图片


3.    3

  安装hadoop:安装方式很简单,下载安装包到所属目录下,使用

  tar -zxvf 安装包名

  进行解压,解压完毕可通过mv 命令重命名文件夹,安装至此完成。解压后的目录内容如图所示。

  

  

4.    4

  hadoop配置过程:要实现分布式环境,配置过程是最为重要的,

  这里要涉及到的配置文件有7个:

  ~/hadoop/etc/hadoop/hadoop-env.sh

  ~/hadoop/etc/hadoop/yarn-env.sh

  ~/hadoop/etc/hadoop/slaves

  ~/hadoop/etc/hadoop/core-site.xml

  ~/hadoop/etc/hadoop/hdfs-site.xml

  ~/hadoop/etc/hadoop/mapred-site.xml

  ~/hadoop/etc/hadoop/yarn-site.xml

  之后会分别介绍各个配置的的作用和配置关键

 

  


5.    5

  3.1  配置文件1:hadoop-env.sh

  该文件是hadoop运行基本环境的配置,需要修改的为java虚拟机的位置。

  故在该文件中修改JAVA_HOME值为本机安装位置(如,exportJAVA_HOME=/usr/lib/jvm/java-1.7.0)


  Ubantu下搭建Hadoop2.x完全分布式集群_第2张图片


6.    6

  3.2  配置文件2:yarn-env.sh

  该文件是yarn框架运行环境的配置,同样需要修改java虚拟机的位置。

  在该文件中修改JAVA_HOME值为本机安装位置(如,exportJAVA_HOME=/usr/lib/jvm/java-1.7.0)


  Ubantu下搭建Hadoop2.x完全分布式集群_第3张图片


7.    7

  3.3  配置文件3:slaves

  该文件里面保存所有slave节点的信息,以本篇为例

  写入以下内容(hosts里从机的主机名):

  Slave1

  Slave2


  

8.    8

  3.4  配置文件4:core-site.xml



hadoop.tmp.dir
/data/hadoop-${user.name}


fs.default.name
hdfs://Master:9000



  这个是hadoop 的核心配置文件,这里需要配置的就这两个属性,fs.default.name配置了hadoop的HDFS系统的命名,位置为主机的9000端口;hadoop.tmp.dir配置了hadoop的tmp目录的根位置。这里使用了一个文件系统中没有的位置,所以要先用mkdir命令新建一下。

9.    9

  3.5  配置文件5:hdfs-site.xml



dfs.http.address
Master:50070


dfs.namenode.secondary.http-addressMaster:50090


dfs.replication
1


  这个是hdfs的配置文件,dfs.http.address配置了hdfs的http的访问位置;dfs.replication配置了文件块的副本数,一般不大于从机的个数。

10. 10

  3.6  配置文件6:mapred-site.xml



mapred.job.tracker
Master:9001
 

mapred.map.tasks
20


mapred.reduce.tasks
4


mapreduce.framework.name
yarn


mapreduce.jobhistory.addressMaster:10020

mapreduce.jobhistory.webapp.addressMaster:19888



 这个是mapreduce任务的配置,由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须在mapreduce.framework.name属性下配置为yarn。mapred.map.tasks和mapred.reduce.tasks分别为map和reduce的任务数,至于什么是map和reduce,可参考其它资料进行了解。

  其它属性为一些进程的端口配置,均配在主机下。

11. 11

  3.7  配置文件7:yarn-site.xml



 yarn.resourcemanager.address
Master:8032


yarn.resourcemanager.scheduler.address
 Master:8030


 yarn.resourcemanager.webapp.address
 Master:8088


yarn.resourcemanager.resource-tracker.addressMaster:8031


yarn.resourcemanager.admin.addressMaster:8033


yarn.nodemanager.aux-servicesmapreduce_shuffle


yarn.nodemanager.aux-services.mapreduce.shuffle.classorg.apache.hadoop.mapred.ShuffleHandler

  该文件为yarn框架的配置,主要是一些任务的启动位置


  Ubantu下搭建Hadoop2.x完全分布式集群_第4张图片

12. 12

  将配置好的hadoop复制到其他节点

  scp –r ~/hadoop hadoop@Slave1:~/

  scp –r ~/hadoop hadoop@Slave2:~/

END

四、      启动验证

1.    1

  格式化namenode

  ./bin/hdfs namenode -format

  若出现如图所示提示,则格式化成功


  

2.    2

  启动hdfs: ./sbin/start-dfs.sh

  此时在Master上面运行的进程有:namenodesecondarynamenode

  Slave1和Slave2上面运行的进程有:datanode

  启动yarn: ./sbin/start-yarn.sh

  此时在Master上面运行的进程有:namenodesecondarynamenode resourcemanager

  Slave1和Slave2上面运行的进程有:datanodenodemanager


  

  Ubantu下搭建Hadoop2.x完全分布式集群_第5张图片

3.    3

  检查启动结果

  查看集群状态:./bin/hdfs dfsadmin–report

  查看文件块组成: ./bin/hdfsfsck / -files -blocks

  查看HDFS: http://192.168.101.248:50070(主机IP)

  查看RM: http:// 192.168.101.248:8088(主机IP)

  正确情况如图显示


  Ubantu下搭建Hadoop2.x完全分布式集群_第6张图片

  Ubantu下搭建Hadoop2.x完全分布式集群_第7张图片


END

五、      注意事项

·        根目录为不存在的文件夹时,需自行创建。

·        启动过程使用端口较多,若无其它原因,需关闭防火墙以正常启动。

·        重新格式化namenode时,需先删除各节点的data文件

 

你可能感兴趣的:(【Hadoop】)