? ? ? 說在前頭的一些東西,關于Linux本身環境本身的一些處理見如下鏈接,主要是講Hadoop環境的前期準備:http://www.lxweimin.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.lxweimin.com/p/302ab34c8a80
如需轉載,請注明出處,謝謝!!