服務(wù)組件的規(guī)劃
- 機(jī)器的配置需要根據(jù)實(shí)際情況考慮撤缴。由于我用的虛擬機(jī)雀鹃,所以各個(gè)容量大小設(shè)置的都很低诫睬。* 注意:搭建分布式至少三臺(tái)機(jī)器舷暮。 *
機(jī)器1 | 機(jī)器2 | 機(jī)器3 |
---|---|---|
主機(jī)名:bigdata-00 | 主機(jī)名:bigdata-01 | 主機(jī)名:bigdata-02 |
內(nèi)存大刑铩:1G | 內(nèi)存大小:1G | 內(nèi)存大邢旅妗:1G |
CPU核數(shù):1核 | CPU核數(shù):1核 | CPU核數(shù):1核 |
硬盤容量:15G | 硬盤容量:15G | 硬盤容量:15G |
- HDFS和YARN的服務(wù)規(guī)劃和配置(hadoop版本-2.5.0)复颈。因?yàn)镹ameNode、ResourceManager沥割、SecondaryNameNode都是比較消耗內(nèi)存的耗啦,所以放在不同的機(jī)器上可以減輕機(jī)器的負(fù)載;MRHistoryServer不消耗過(guò)多的內(nèi)存可以任意放置机杜。
機(jī)器1 | 機(jī)器2 | 機(jī)器3 | |
---|---|---|---|
NameNode | ResourceManager | SecondaryNameNode | |
DateNode | DateNode | DateNode | |
NodeManager | NodeManager | NodeManager | |
MRHistroyServer |
克隆虛擬機(jī)及配置步驟
- 對(duì)克隆完成的虛擬機(jī)修改其主機(jī)名
- 先臨時(shí)修改
[wulei@bigdata-00 ~]$ hostname bigdata-00
- 永久修改
[wulei@bigdata-00 ~]$ vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=bigdata-00
- 會(huì)發(fā)現(xiàn) /etc/udev/rules.d/70-persistent-net.rules(記錄了mac地址帜讲、網(wǎng)卡名等信息) 下有兩條信息〗忿郑可以選擇清空這個(gè)文件夾似将,也可以刪去其中一條,并在另外一條中修改mac地址和網(wǎng)卡名蚀苛。我這里選擇清空在验。
[root@bigdata-02 ~]# >/etc/udev/rules.d/70-persistent-net.rules
- 配置網(wǎng)卡信息,修改配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0堵未。 幾處重要的修改如下腋舌。配置完成后重啟,ping外網(wǎng)測(cè)試渗蟹。
HWADDR=00:0C:29:A8:EA:9D
IPADDR=192.168.200.7
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
[root@bigdata-00 ~]# ping www.baidu.com - 在配置文件 /etc/hosts 中添加主機(jī)名映射
192.168.200.5 bigdata-00
192.168.200.6 bigdata-01
192.168.200.7 bigdata-02
Hadoop集群的安裝和配置
- 規(guī)劃集群的安裝目錄侦厚。為了方便管理,一個(gè)集群的相同組件應(yīng)該放在相同的目錄拙徽。
[root@bigdata-00 ~]# mkdir /opt/app
- 一般操作不會(huì)一直在root用戶下操作刨沦,因此修改這個(gè)目錄的用戶主。
[root@bigdata-02 ~]# chown wulei:wulei /opt/app
[root@bigdata-02 ~]# ll -d /opt/app
drwxr-xr-x 2 wulei wulei 4096 Oct 19 09:10 /opt/app
- 安裝和配置JDK
[root@bigdata-01 opt]# tar -zxf softwares/jdk-8u101-linux-x64.tar.gz -C modules/
[root@bigdata-01 opt]# vim /etc/profile
##java7
export JAVA_HOME=/opt/modules/jdk1.8.0_101
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
- 解壓Hadoop 2.5.0至app目錄下膘怕。刪除hadoop目錄下share/doc(文檔)目錄想诅,以節(jié)約磁盤空間。
[root@bigdata-01 opt]# tar -zxf softwares/hadoop-2.5.0.tar.gz -C app/
[root@bigdata-00 opt]# rm -rf app/hadoop-2.5.0/share/doc
- 指定運(yùn)行hadoop各組件的JAVA_HOME路徑岛心。需要設(shè)置三個(gè)配置文件:hadoop-env.sh来破、mapred-env.sh、yarn-env.sh忘古。
export JAVA_HOME=/opt/modules/jdk1.8.0_101
- 配置相關(guān)服務(wù)組件XML文件徘禁,其中包括指定哪臺(tái)機(jī)器作為NameNode節(jié)點(diǎn)和NameNode文件存儲(chǔ)的目錄。
- core-site.xml配置NameNode
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata-00:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/app/hadoop-2.5.0/data/tmp</value>
</property>
- 在slaves文件中設(shè)置DataNode
192.168.200.5 bigdata-00
192.168.200.6 bigdata-01
192.168.200.7 bigdata-02
- hdfs-site.xml配置SecondaryNameNode髓堪。把它部署在 bigdata-02 機(jī)器上送朱。
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata-02:50090</value>
</property>
- yarn-site.xml配置YARN娘荡。各個(gè)參數(shù)的解釋:
yarn.resourcemanager.hostname 指定resoucemanager節(jié)點(diǎn)
yarn.nodemanager.aux-services 需要配置成mapreduce_shuffle才能運(yùn)行mapreduce程序。
yarn.log.aggregation-enable 是否啟動(dòng)日志聚集功能驶沼。日志聚集是YARN提供的日志中央化管理功能炮沐,啟動(dòng)它可以將container和任務(wù)產(chǎn)生的相關(guān)日志文件上傳到HDFS上(從而實(shí)現(xiàn)中央化管理功能),默認(rèn)情況下個(gè)日志文件是存儲(chǔ)在各個(gè)NodeManager節(jié)點(diǎn)上的回怜。
yarn.log.aggregation.retain-seconds 設(shè)置聚集日志在HDFS保存的時(shí)間(單位為秒)大年。
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata-01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log.aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>18000</value>
</property>
- mapred-site.xml配置mapreduce。各參數(shù)的解釋:
mapreduce.framework.name 指定mapreduce的運(yùn)行在什么框架上玉雾。默認(rèn)值為本地翔试。
mapreduce.jobhistory.address 指定MapReduce JobHistory Server地址。
mapreduce.jobhistory.webapp.address 指定MapReduce JobHistory Server Web UI地址复旬。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigdata-00:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata-00:19888</value>
</property>
- 先在一臺(tái)機(jī)器上測(cè)試各個(gè)服務(wù)遏餐;然后分發(fā)配置文件到其他節(jié)點(diǎn)上;最后在其他節(jié)點(diǎn)上測(cè)試各個(gè)服務(wù)赢底。注:如果不能正常啟動(dòng)服務(wù)失都,應(yīng)該在logs下面查看相應(yīng)的啟動(dòng)日志文件。
- 測(cè)試HDFS服務(wù)能否正常啟動(dòng)
[wulei@bigdata-00 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start namenode
[wulei@bigdata-00 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start datanode
[wulei@bigdata-00 hadoop-2.5.0]$ jps
4402 Jps
4234 NameNode
4331 DataNode
- 測(cè)試HDFS能否創(chuàng)建目錄幸冻、上傳文件粹庞、讀取文件。
[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -mkdir -r /test
[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -ls /
Found 1 items
drwxr-xr-x - wulei supergroup 0 2016-10-19 16:01 /test
[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -put /etc/hosts /test/
[wulei@bigdata-00 hadoop-2.5.0]$ bin/hdfs dfs -text /test/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- 測(cè)試YARN服務(wù)能否正常啟動(dòng)
[wulei@bigdata-00 hadoop-2.5.0]$ sbin/yarn-daemon.sh start nodemanager
[wulei@bigdata-00 hadoop-2.5.0]$ sbin/mr-jobhistory-daemon.sh start historyserver
[wulei@bigdata-00 hadoop-2.5.0]$ jps
4769 NodeManager
4887 JobHistoryServer
4234 NameNode
4331 DataNode
- 分發(fā)配置文件到其余兩個(gè)節(jié)點(diǎn)并啟動(dòng)相應(yīng)的服務(wù)洽损,然后測(cè)試其余節(jié)點(diǎn)HDFS是否正常庞溜,和上面的步驟一樣。
[wulei@bigdata-00 hadoop-2.5.0]$ scp -r etc/ wulei@bigdata-01:/opt/app/hadoop-2.5.0/
[wulei@bigdata-00 hadoop-2.5.0]$ scp -r etc/ wulei@bigdata-02:/opt/app/hadoop-2.5.0/
-
在管理界面查看所有namenode(bigdata-00:50070)
- 測(cè)試mapreduce能否跑在YARN集群上碑定。需要注意jar包必須運(yùn)行在namenode節(jié)點(diǎn)上流码,因?yàn)橹挥袕脑摴?jié)點(diǎn)才能使用分布式文件系統(tǒng)的目錄結(jié)構(gòu)。在wb管理界面(bigdata-01:8088)查看mapreduce運(yùn)行進(jìn)度延刘。
[wulei@bigdata-00 hadoop-2.5.0]$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /test/ /test/out
- 在此檢查各個(gè)節(jié)點(diǎn)運(yùn)行的組件
至此hadoop 2.5.0分布式集群搭建完畢