這篇文章給大家分享的是有關(guān)怎樣搭建Hadoop2.8.1完全分布式環(huán)境的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
成都地區(qū)優(yōu)秀IDC服務(wù)器托管提供商(成都創(chuàng)新互聯(lián)公司).為客戶提供專業(yè)的雅安服務(wù)器托管,四川各地服務(wù)器托管,雅安服務(wù)器托管、多線服務(wù)器托管.托管咨詢專線:13518219792
實(shí)驗(yàn)過程
1、基礎(chǔ)集群的搭建
目的:獲得一個(gè)可以互相通信的三節(jié)點(diǎn)集群
下載并安裝VMware WorkStation Pro(支持快照,方便對集群進(jìn)行保存)下載地址,產(chǎn)品激活序列號網(wǎng)上自行查找。
下載CentOS7鏡像,下載地址。
使用VMware安裝master節(jié)點(diǎn)(稍后其他兩個(gè)節(jié)點(diǎn)可以通過復(fù)制master節(jié)點(diǎn)的虛擬機(jī)文件創(chuàng)建)。
三個(gè)節(jié)點(diǎn)存儲均為30G默認(rèn)安裝,master節(jié)點(diǎn)內(nèi)存大小為2GB,雙核,slave節(jié)點(diǎn)內(nèi)存大小1GB,單核
2、集群網(wǎng)絡(luò)配置
目的:為了使得集群既能互相之間進(jìn)行通信,又能夠進(jìn)行外網(wǎng)通信,需要為節(jié)點(diǎn)添加兩張網(wǎng)卡(可以在虛擬機(jī)啟動的時(shí)候另外添加一張網(wǎng)卡,即網(wǎng)絡(luò)適配器,也可以在節(jié)點(diǎn)創(chuàng)建之后,在VMware設(shè)置中添加)。
兩張網(wǎng)卡上網(wǎng)方式均采用橋接模式,外網(wǎng)IP設(shè)置為自動獲?。ㄍㄟ^此網(wǎng)卡進(jìn)行外網(wǎng)訪問,配置應(yīng)該按照你當(dāng)前主機(jī)的上網(wǎng)方式進(jìn)行合理配置,如果不與主機(jī)通信的話可以采用NAT上網(wǎng)方式,這樣選取默認(rèn)配置就行),內(nèi)網(wǎng)IP設(shè)置為靜態(tài)IP。
本文中的集群網(wǎng)絡(luò)環(huán)境配置如下:
master內(nèi)網(wǎng)IP:192.168.1.100
slave1內(nèi)網(wǎng)IP:192.168.1.101
slave2內(nèi)網(wǎng)IP:192.168.1.102
設(shè)置完后,可以通過ping進(jìn)行網(wǎng)絡(luò)測試
注意事項(xiàng):通過虛擬機(jī)文件復(fù)制,在VMware改名快速創(chuàng)建slave1和slave2后,可能會產(chǎn)生網(wǎng)卡MAC地址重復(fù)的問題,需要在VMware網(wǎng)卡設(shè)置中重新生成MAC,在虛擬機(jī)復(fù)制后需要更改內(nèi)網(wǎng)網(wǎng)卡的IP。
每次虛擬機(jī)重啟后,網(wǎng)卡可能沒有自動啟動,需要手動重新連接。
3、集群SSH免密登陸設(shè)置
目的:創(chuàng)建一個(gè)可以ssh免密登陸的集群
3.1 創(chuàng)建hadoop用戶
為三個(gè)節(jié)點(diǎn)分別創(chuàng)建相同的用戶hadoop,并在以后的操作均在此用戶下操作,操作如下:
$su -
#useradd -m hadoop
#passwd hadoop
為hadoop添加sudo權(quán)限
#visudo
在該行root ALL=(ALL) ALL下添加hadoop ALL=(ALL) ALL保存后退出,并切換回hadoop用戶
#su hadoop
注意事項(xiàng):三個(gè)節(jié)點(diǎn)的用戶名必須相同,不然以后會對后面ssh及hadoop集群搭建產(chǎn)生巨大影響
3.2 hosts文件設(shè)置
為了不直接使用IP,可以通過設(shè)置hosts文件達(dá)到ssh slave1這樣的的效果(三個(gè)節(jié)點(diǎn)設(shè)置相同)
$sudo vim /etc/hosts
在文件尾部添加如下行,保存后退出:
192.168.1.100 master
192.168.1.101 slave1
192.168.1.102 slave2
注意事項(xiàng):不要在127.0.0.1后面添加主機(jī)名,如果加了master,會造成后面hadoop的一個(gè)很坑的問題,在slave節(jié)點(diǎn)應(yīng)該解析出masterIP的時(shí)候解析出127.0.0.1,造成hadoop搭建完全正確,但是系統(tǒng)顯示可用節(jié)點(diǎn)一直為0。
3.3 hostname修改
centos7默認(rèn)的hostname是localhost,為了方便將每個(gè)節(jié)點(diǎn)hostname分別修改為master、slave1、slave2(以下以master節(jié)點(diǎn)為例)。
$sudo hostnamectl set-hostname master
重啟terminal,然后查看:$hostname
3.3 ssh設(shè)置
設(shè)置master節(jié)點(diǎn)和兩個(gè)slave節(jié)點(diǎn)之間的雙向ssh免密通信,下面以master節(jié)點(diǎn)ssh免密登陸slave節(jié)點(diǎn)設(shè)置為例,進(jìn)行ssh設(shè)置介紹(以下操作均在master機(jī)器上操作):
首先生成master的rsa密鑰:$ssh-keygen -t rsa
設(shè)置全部采用默認(rèn)值進(jìn)行回車
將生成的rsa追加寫入授權(quán)文件:$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
給授權(quán)文件權(quán)限:$chmod 600 ~/.ssh/authorized_keys
進(jìn)行本機(jī)ssh測試:$ssh maste r正常免密登陸后所有的ssh第一次都需要密碼,此后都不需要密碼
將master上的authorized_keys傳到slave1
sudo scp ~/.ssh/id_rsa.pubhadoop@slave1:~/
登陸到slave1操作:$ssh slave1輸入密碼登陸
$cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
修改authorized_keys權(quán)限:$chmod 600 ~/.ssh/authorized_keys
退出slave1:$exit
進(jìn)行免密ssh登陸測試:$ssh slave1
4、java安裝
目的:hadoop是基于Java的,所以要安裝配置Java環(huán)境(三個(gè)節(jié)點(diǎn)均需要操作,以下以master節(jié)點(diǎn)為例)
下載并安裝:$sudo yum install java-1.8.0-openjdkjava-1.8.0-openjdk-devel
驗(yàn)證是否安裝完成:$java -version
配置環(huán)境變量,修改~/.bashrc文件,添加行: export JAVA_HOME=/usr/lib/jvm/java-1.8.0
使環(huán)境變量生效:$source ~/.bashrc
5、Hadoop安裝配置
目的:獲得正確配置的完全分布式Hadoop集群(以下操作均在master主機(jī)下操作)
安裝前三臺節(jié)點(diǎn)都需要需要關(guān)閉防火墻和selinux
$sudo systemctl stop firewalld.service $sudo systemctl disable firewalld.service $sudo vim /usr/sbin/sestatus
將SELinux status參數(shù)設(shè)定為關(guān)閉狀態(tài)
SELinux status: disabled
5.1 Hadoop安裝
首先在master節(jié)點(diǎn)進(jìn)行hadoop安裝配置,之后使用scp傳到slave1和slave2。
下載Hadoop二進(jìn)制源碼至master,下載地址,并將其解壓在~/ 主目錄下
$tar -zxvf ~/hadoop-2.8.1.tar.gz -C ~/
$mv~/hadoop-2.8.1/* ~/hadoop/
注意事項(xiàng):hadoop有32位和64位之分,官網(wǎng)默認(rèn)二進(jìn)制安裝文件是32位的,但是本文操作系統(tǒng)是64位,會在后面hadoop集群使用中產(chǎn)生一個(gè)warning但是不影響正常操作。
5.2 Hadoop的master節(jié)點(diǎn)配置
配置hadoop的配置文件core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml slaves(都在~/hadoop/etc/hadoop文件夾下)
$cd ~/hadoop/etc/hadoop
$vimcore-site.xml其他文件相同,以下為配置文件內(nèi)容:
1.core-site.xml
fs.default.name hdfs://master:9000 hadoop.tmp.dir file:/home/hadoop/hadoop/tmp
2.hdfs-site.xml
dfs.replication 2 dfs.namenode.name.dir file:/home/hadoop/hadoop/tmp/dfs/name dfs.datanode.data.dir file:/home/hadoop/hadoop/tmp/dfs/data dfs.namenode.secondary.http-address master:9001
3.mapred-site.xml
mapreduce.framework.name yarn
4.yarn-site.xml
yarn.resourcemanager.hostname master yarn.nodemanager.aux-services mapreduce_shuffle yarn.log-aggregation-enable true yarn.log-aggregation.retain-seconds 604800
5.slaves
slave1
slave2
5.3 Hadoop的其他節(jié)點(diǎn)配置
此步驟的所有操作仍然是在master節(jié)點(diǎn)上操作,以master節(jié)點(diǎn)在slave1節(jié)點(diǎn)上配置為例
復(fù)制hadoop文件至slave1:$scp -r ~/hadoop hadoop@slave1:~/
5.4 Hadoop環(huán)境變量配置
配置環(huán)境變量,修改~/.bashrc文件,添加行(每個(gè)節(jié)點(diǎn)都需要此步操作,以master節(jié)點(diǎn)為例):
#hadoop environment vars export HADOOP_HOME=/home/hadoop/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
使環(huán)境變量生效:$source ~/.bashrc
6、Hadoop啟動
格式化namenode:$hadoop namenode -format
啟動hadoop:$start-all.sh
master節(jié)點(diǎn)查看啟動情況:$jps
slave1節(jié)點(diǎn)查看啟動情況:$jps
slave2節(jié)點(diǎn)查看啟動情況:$jps
Web瀏覽器輸入127.0.0.1:50070,查看管理界面
7、Hadoop集群測試
目的:驗(yàn)證當(dāng)前hadoop集群正確安裝配置
本次測試用例為利用MapReduce實(shí)現(xiàn)wordcount程序
生成文件testWordCount:$echo "My name is Xie PengCheng. This is a example program called WordCount, run by Xie PengCheng " >>testWordCount
創(chuàng)建hadoop文件夾wordCountInput:$hadoop fs -mkdir /wordCountInput
將文件testWordCount上傳至wordCountInput文件夾:$hadoop fs -puttestWordCount/wordCountInput
執(zhí)行wordcount程序,并將結(jié)果放入wordCountOutput文件夾:$hadoop jar ~/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar wordcount /wordCountInput /wordCountOutput
注意事項(xiàng):/wordCountOutput文件夾必須是沒有創(chuàng)建過的文件夾
查看生成文件夾下的文件:$hadoop fs -ls /wordCountOutput
在output/part-r-00000可以看到程序執(zhí)行結(jié)果:$hadoop fs -cat /wordCountOutpart-r-00000
感謝各位的閱讀!關(guān)于“怎樣搭建Hadoop2.8.1完全分布式環(huán)境”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!