hadoop2.5.0完全分布式环境搭建(亲测有效)
说在前头的一些东西,关于Linux本身环境本身的一些处理见如下链接,主要是讲Hadoop环境的前期准备:http://www.jianshu.com/p/d8720d0828dd
一.环境:
java: jdk1.7.0_80
Linux: CentOS6.5
Hadoop: hadoop-2.5.0
二.集群规划:
Hadoop01 Hadoop02 Hadoop03
namenode
datanode datanode datanode
nodemanager nodemanager nodemanager
resourcemanager
secondarynamenode
三.按如下步骤依次操作各个文件:
1.启动文件,修改这三个文件的JAVVA_HOEM变量:
hadoop-env.sh
yarn-env.sh
mapred-env.sh
2.修改core-site.xml文件,编辑内容如下:
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/shiluo/softwares/hadoop-2.5.0/data/tmp</value>
</property>
#该参数代表从HDFS上删除的文件暂存的时间(60 * 24)
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
3.修改hdfs-site.xml文件,编辑如下内容:
#配置secondarynamenode
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:50090</value>
</property>
4.修改slave文件,将集群需要部署datanode进程节点的hostname写入该文件
5.修改yarn-site.xml文件,编辑如下内容:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>
#NodeManager上运行的附属服务,该参数是为了可以运行mapreduce程序
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
#nodemanager可使用的内存,默认是8G
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
#nodemanager可以使用的虚拟CPU个数
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>4</value>
<property>
#添加日志聚集功能
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
#日志可以存放的时间
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>640800</value>
</property>
6.修改mapred-site.xml文件(改文件默认是不存在的,把mapred-site.xml.template文件修改即可),编辑如下内容:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
7.至此,全部配置完成,在分发之前将share下面的doc目录删掉,增加分发的速度,使用如下命令进行分发任务
scp -r hadoop-2.5.0 hadoop02:/home/shiluo/software/
scp -r hadoop-2.5.0 hadoop03:/home/shiluo/software/
8.在Hadoop01这台机器上执行如下命令进行格式化:
bin/hdfs namenode -format
好,到这里基本上大功告成,然后启动进程,做一些基本的测试(例如:文件的上传,下载,读取等等操作),试试集群是否能够正常工作,下面介绍几个集群搭建出现的问题。
问题一:namenode进程不能正常启动?
解决办法:查看namenode的启动日志,
①.一般是namenode配置有问题,仔细核对core-site.xml和hdfs-site.xml文件
②.第二种情况是多次格式化namenode造成的,需要删除集群中每台节点/tmp目录下的所有东西,还有hadoop.tmp.dir目录下的东西,即可解决。
问题二:启动集群后,datanode没有正常启动?
解决办法:查看namenode的启动日志发现,出现了端口被占用的情况导致datanode没有正常启动,使用 netstat -anp | grep 端口号 命令查到进程号kill掉,在启动集群即可解决。
至此,集群搭建全部讲解完毕,预祝各位朋友可以搭建成功;下一篇将介绍在此基础上如何搭建出一个高可用的(HA),同时具有Failover(故障自动转移)功能的分布式集群。
Hadoop2.5.0 HA构建 链接:
http://www.jianshu.com/p/302ab34c8a80
如需转载,请注明出处,谢谢!!