Hadoop2.X完全分布式部署安装分步阅读Hadoop的大名想必已被IT界人士众所周知了,而它的官方文档对它它的安装部署却介绍得很简略。为了让更多对此有兴趣的人更快入门,特发此经验。工具/原料linux系统(本篇使用的是CentOSv6.5)Hadoop安装包(本篇使用的是hadoopv2.6.0)环境要求1需要安装JDK6.0以上版本(可自行解压安装或使用自带的软件安装包,如yum)1.2需要无密码登录的SSH环境(安装ssh及sshd,具体配置步骤在后面介绍)END安装/配置步骤1.1配置hosts文件,将主机名和对应IP地址映射。如图中Master、Slave1和Slave2是我们要搭建分布式环境的机器。Master为主机,Slavex为从机。2.2配置SSH的无密码登录:可新建专用用户hadoop进行操作,cd命令进入所属目录下,输入以下指令(已安装ssh)ssh-keygen-trsa-Pcat.ssh/id_rsa.pub.ssh/authorized_keys解释一下,第一条生成ssh密码的命令,-t参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用“”空字符串表示无密码。第二条命令将生成的密钥写入authorized_keys文件。这时输入sshlocalhost,弹出写入提示后回车,便可无密码登录本机。同理,将authorized_keys文件通过scp命令拷贝到其它主机相同目录下,则可无密码登录其它机器。3.3安装hadoop:安装方式很简单,下载安装包到所属目录下,使用tar-zxvf安装包名进行解压,解压完毕可通过mv命令重命名文件夹,安装至此完成。解压后的目录内容如图所示。4.4hadoop配置过程:要实现分布式环境,配置过程是最为重要的,这里要涉及到的配置文件有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配置文件1:hadoop-env.sh该文件是hadoop运行基本环境的配置,需要修改的为java虚拟机的位置。故在该文件中修改JAVA_HOME值为本机安装位置(如,exportJAVA_HOME=/usr/lib/jvm/java-1.7.0)6.6配置文件2:yarn-env.sh该文件是yarn框架运行环境的配置,同样需要修改java虚拟机的位置。在该文件中修改JAVA_HOME值为本机安装位置(如,exportJAVA_HOME=/usr/lib/jvm/java-1.7.0)7.7配置文件3:slaves该文件里面保存所有slave节点的信息,以本篇为例写入以下内容(hosts里从机的主机名):Slave1Slave28.8配置文件4:core-site.xmlconfigurationpropertynamehadoop.tmp.dir/namevalue/data/hadoop-${user.name}/value/propertypropertynamefs.default.name/namevaluehdfs://Master:9000/value/property/configuration这个是hadoop的核心配置文件,这里需要配置的就这两个属性,fs.default.name配置了hadoop的HDFS系统的命名,位置为主机的9000端口;hadoop.tmp.dir配置了hadoop的tmp目录的根位置。这里使用了一个文件系统中没有的位置,所以要先用mkdir命令新建一下。9.9配置文件5:hdfs-site.xmlconfigurationpropertynamedfs.http.address/namevalueMaster:50070/value/propertypropertynamedfs.namenode.secondary.http-address/namevalueMaster:50090/value/propertypropertynamedfs.replication/namevalue1/value/property/configuration这个是hdfs的配置文件,dfs.http.address配置了hdfs的http的访问位置;dfs.replication配置了文件块的副本数,一般不大于从机的个数。10.10配置文件6:mapred-site.xmlconfigurationpropertynamemapred.job.tracker/namevalueMaster:9001/value/propertypropertynamemapred.map.tasks/namevalue20/value/propertypropertynamemapred.reduce.tasks/namevalue4/value/propertypropertynamemapreduce.framework.name/namevalueyarn/value/propertypropertynamemapreduce.jobhistory.address/namevalueMaster:10020/value/propertypropertynamemapreduce.jobhistory.webapp.address/namevalueMaster:19888/value/property/configuration这个是mapreduce任务的配置,由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须在mapreduce.framework.name属性下配置为yarn。mapred.map.tasks和mapred.reduce.tasks分别为map和reduce的任务数,至于什么是map和reduce,可参考其它资料进行了解。其它属性为一些进程的端口配置,均配在主机下。11.11配置文件7:yarn-site.xmlconfigurationpropertynameyarn.resourcemanager.address/namevalueMaster:8032/value/propertypropertynameyarn.resourcemanager.scheduler.address/namevalueMaster:8030/value/propertypropertynameyarn.resourcemanager.webapp.address/namevalueMaster:8088/value/propertypropertynameyarn.resourcemanager.resource-tracker.address/namevalueMaster:8031/value/propertypropertynameyarn.resourcemanager.admin.address/namevalueMaster:8033/value/propertypropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/propertypropertynameyarn.nodemanager.aux-services.mapreduce.shuffle.class/namevalueorg.apache.hadoop.mapred.ShuffleHandler/value/property/configuration该文件为yarn框架的配置,主要是一些任务的启动位置12.12将配置好的hadoop复制到其他节点scp–r~/hadoophadoop@Slave1:~/scp–r~/hadoophadoop@Slave2:~/END启动验证1.1格式化namenode:./bin/hdfsnamenode–format若出现如图所示提示,则格式化成功2.2启动hdfs:./sbin/start-dfs.sh此时在Master上面运行的进程有:namenodesecondarynamenodeSlave1和Slave2上面运行的进程有:datanode启动yarn:./sbin/start-yarn.sh此时在Master上面运行的进程有:namenodesecondarynamenoderesourcemanagerSlave1和Slave2上面运行的进程有:datanodenodemanaget3.3检查启动结果查看集群状态:./bin/hdfsdfsadmin–report查看文件块组成:./bin/hdfsfsck/-files-blocks查看HDFS:(主机IP)查看RM:(主机IP)正确情况如图显示END注意事项根目录为不存在的文件夹时,需自行创建。启动过程使用端口较多,若无其它原因,需关闭防火墙以正常启动。重新格式化namenode时,需先删除各节点的data文件