? ? ? ? 本教程講解Hadoop-3.3.0在Ubuntu系統(tǒng)下集群的搭建。
? ? ? ? 在正式開(kāi)始之前,需要自己先安裝好一臺(tái)虛擬機(jī)。下面給大家整理了過(guò)程中需要用到的資源包,可以自行獲取:
鏈接:https://pan.baidu.com/s/1TWErk6DAyV99WId1af2kqg?pwd=wcop
提取碼:wcop
--來(lái)自百度網(wǎng)盤超級(jí)會(huì)員V4的分享
創(chuàng)建hadoop用戶
1.打開(kāi)終端,輸入命令,創(chuàng)建新用戶
sudo useradd -m hadoop -s /bin/bash
2.為hadoop用戶設(shè)置密碼
sudo passwd hadoop
3.為了我們后面操作方便,這里可以給予hadoop用戶添加管理員權(quán)限
sudo adduser hadoop sudo
最后,在右上角齒輪注銷當(dāng)前用戶,登錄上我們剛剛創(chuàng)建的hadoop用戶。
更新apt
1.更改下載服務(wù)器
? ? ? ? 系統(tǒng)默認(rèn)的軟件源一般都是在外網(wǎng),有時(shí)候不一定能下載成功,所以可以更改下軟件源。進(jìn)入系統(tǒng)設(shè)置(齒輪圖標(biāo))?--> 軟件與更新
?選擇其他站點(diǎn),再選擇國(guó)內(nèi)的軟件源。
?再點(diǎn)擊右下角的選擇服務(wù)器,輸入密碼授權(quán)。
?根據(jù)彈窗信息,點(diǎn)擊重新載入,等待加載。
2.打開(kāi)終端,輸入命令:
sudo apt-get update
更新apt,后續(xù)我們需要通過(guò)它來(lái)安裝軟件。
3.安裝vim,輸入命令:
sudo apt-get install vim
? ? ? ? 遇到下面提示時(shí),直接輸入y即可。
?之后回車,等待安裝即可。
安裝SSH
1.輸入命令,安裝SSH
sudo apt-get install openssh-server
2. 安裝成功后,執(zhí)行下面命令登錄到本機(jī)
ssh localhost
?當(dāng)有以下提示時(shí),輸入yes。然后再輸入密碼即可登錄到本機(jī)。
但是這樣我們每次登錄都是需要密碼的,所以我們接下來(lái)對(duì)ssh進(jìn)行配置,使能無(wú)密碼登錄。
配置SSH免密登錄
1.執(zhí)行命令exit退出SSH,回到我們?cè)瓉?lái)的窗口
2.利用ssh-keygen生成密鑰,并將密鑰加到授權(quán)中
cd ~/.ssh/ # 若沒(méi)有該目錄,請(qǐng)先執(zhí)行一次ssh localhost
ssh-keygen -t rsa # 會(huì)有提示,都按回車就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授權(quán)
3.再次使用ssh localhost即可無(wú)密碼登陸到本機(jī)
?Xshell、Xftp連接
1.xshell、xftp直接在官網(wǎng)下載即可,個(gè)人版的免費(fèi)使用
2.執(zhí)行命令ifconfig查看當(dāng)前虛擬機(jī)的ip
?3.連接xshell、xftp(以xshell為例)
?然后輸入用戶名、密碼即可連接成功
安裝Java環(huán)境
(1)第一種方式
1. cd /usr/lib
2. sudo mkdir jvm #創(chuàng)建/usr/lib/jvm目錄用來(lái)存放JDK文件
3. cd ~ #進(jìn)入hadoop用戶的主目錄
4. cd Downloads #注意區(qū)分大小寫字母,剛才已經(jīng)通過(guò)FTP軟件把JDK安裝包jdk-8u371-linux-x64.tar.gz上傳到該目錄下
5. sudo tar -zxvf ./jdk-8u371-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解壓到/usr/lib/jvm目錄下
接下來(lái)配置環(huán)境變量,執(zhí)行命令
vim ~/.bashrc
在開(kāi)頭加入以下內(nèi)容
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_371
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存并退出,然后執(zhí)行以下命令,是配置立馬生效。
source ~/.bashrc
最后執(zhí)行命令查看是否配置成功,出現(xiàn)下面情況即為配置成功
hadoop@ubuntu:~$ java -version
java version "1.8.0_371"
Java(TM) SE Runtime Environment (build 1.8.0_371-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
(2)第二種方式
1.在沒(méi)有安裝jdk的情況下,我們執(zhí)行命令java -version,會(huì)有提示
2.根據(jù)提示執(zhí)行命令
sudo apt install openjdk-8-jre-headless
3.配置環(huán)境變量,執(zhí)行命令:vim ~/.bashrc,在文件開(kāi)頭加入以下內(nèi)容
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-i386
export PATH=$JAVA_HOME/bin:$PATH
保存退出
4.執(zhí)行命令source ~/.bashrc使配置即刻生效
5.執(zhí)行命令java -version查看是否配置成功
?????????我們進(jìn)行到這里,在正式安裝Hadoop之前的一些基本配置已經(jīng)完成,我們可以在關(guān)機(jī)狀態(tài)(一定要在關(guān)機(jī)狀態(tài)下)拍攝一個(gè)快照。
Slave1的配置
1.我們通過(guò)上面的快照克隆出一個(gè)新的虛擬機(jī),作為我們的從節(jié)點(diǎn)Slave1.
2.克隆出的Slave1和之前的虛擬機(jī)一模一樣,但是我們還需要重新配置SSH,然后再按照上面介紹的方法對(duì)xshell、xftp進(jìn)行連接。
Hadoop的安裝
1.首先我們先通過(guò)網(wǎng)盤下載hadoop-3.3.0的壓縮包,然后通過(guò)xftp將壓縮包傳給我們的虛擬機(jī),要記好我們上傳到虛擬機(jī)的位置,我的是在? /home/hadoop/下載/? ? 路徑下。
2.解壓到 /usr/local/ 路徑下,輸入命令
sudo tar -zxf hadoop-3.3.0-aarch64.tar.gz -C /usr/local
然后我們?cè)傩薷囊幌挛募?,?quán)限
cd /usr/local/
sudo mv ./hadoop-3.3.0/ ./hadoop # 將文件夾名改為hadoop
sudo chown -R hadoop ./hadoop # 修改文件權(quán)限
3.?Hadoop 解壓后即可使用。輸入如下命令來(lái)檢查 Hadoop 是否可用,成功則會(huì)顯示 Hadoop 版本信息:
cd /usr/local/hadoop
./bin/hadoop version
?集群的搭建
1.網(wǎng)絡(luò)配置
1.改變虛擬機(jī)的主機(jī)名,我們將主節(jié)點(diǎn)設(shè)為Master,從節(jié)點(diǎn)設(shè)為Slave1,使用下面命令
sudo vim /etc/hostname
修改完成后,重新啟動(dòng)虛擬機(jī),打開(kāi)終端,主機(jī)名已經(jīng)改變
2.然后,在Master節(jié)點(diǎn)中執(zhí)行如下命令打開(kāi)并修改Master節(jié)點(diǎn)中的“/etc/hosts”文件:
sudo vim /etc/hosts
可以在hosts文件中增加如下兩條IP和主機(jī)名映射關(guān)系:
192.168.222.151 Master
192.168.222.152 Slave1
?在Slave1節(jié)點(diǎn)下的hosts文件下添加上面映射關(guān)系,ip根據(jù)自己虛擬機(jī)情況進(jìn)行修改。然后再重新啟動(dòng)各虛擬機(jī),打開(kāi)終端,在各結(jié)點(diǎn)下輸入命令:測(cè)試是否相互ping得通,如果ping不通,后面就無(wú)法順利配置成功:
ping Master -c 3
ping Slave1 -c 3
?2.SSH免密登錄各節(jié)點(diǎn)
必須要讓Master節(jié)點(diǎn)可以SSH無(wú)密碼登錄到各個(gè)Slave節(jié)點(diǎn)上。首先,生成Master節(jié)點(diǎn)的公匙,如果之前已經(jīng)生成過(guò)公鑰,必須要?jiǎng)h除原來(lái)生成的公鑰,重新生成一次,因?yàn)榍懊嫖覀儗?duì)主機(jī)名進(jìn)行了修改。具體命令如下:
cd ~/.ssh # 如果沒(méi)有該目錄,先執(zhí)行一次ssh localhost
rm ./id_rsa* # 刪除之前生成的公匙(如果已經(jīng)存在)
ssh-keygen -t rsa # 執(zhí)行該命令后,遇到提示信息,一直按回車就可以
為了讓Master節(jié)點(diǎn)能夠無(wú)密碼SSH登錄本機(jī),需要在Master節(jié)點(diǎn)上執(zhí)行如下命令:
cat ./id_rsa.pub >> ./authorized_keys
完成后可以執(zhí)行命令“ssh Master”來(lái)驗(yàn)證一下,可能會(huì)遇到提示信息,只要輸入yes即可,測(cè)試成功后,請(qǐng)執(zhí)行“exit”命令返回原來(lái)的終端。接下來(lái),在Master節(jié)點(diǎn)將上公匙傳輸?shù)絊lave1節(jié)點(diǎn):
scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/
上面的命令中,scp是secure copy的簡(jiǎn)寫,用于在 Linux下進(jìn)行遠(yuǎn)程拷貝文件,類似于cp命令,不過(guò),cp只能在本機(jī)中拷貝。執(zhí)行scp時(shí)會(huì)要求輸入Slave1上hadoop用戶的密碼,輸入完成后會(huì)提示傳輸完畢,如下圖所示。
接著在Slave1節(jié)點(diǎn)上,將SSH公匙加入授權(quán):
mkdir ~/.ssh # 如果不存在該文件夾需先創(chuàng)建,若已存在,則忽略本命令
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub # 用完以后就可以刪掉
?這樣,在Master節(jié)點(diǎn)上就可以無(wú)密碼SSH登錄到各個(gè)Slave節(jié)點(diǎn)了,可在Master節(jié)點(diǎn)上執(zhí)行如下命令進(jìn)行檢驗(yàn):
ssh Slave1
?
?3.配置PATH變量
在Master節(jié)點(diǎn)下,首先執(zhí)行命令“vim ~/.bashrc”,也就是使用vim編輯器打開(kāi)“~/.bashrc”文件,然后,在該文件最上面的位置加入下面一行內(nèi)容:
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
保存后執(zhí)行命令“source ~/.bashrc”,使配置生效。
4.配置集群環(huán)境
在配置集群/分布式模式時(shí),需要修改“/usr/local/hadoop/etc/hadoop”目錄下的配置文件,這里僅設(shè)置正常啟動(dòng)所必須的設(shè)置項(xiàng),包括workers 、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml共5個(gè)文件
(1)修改workers
在進(jìn)行分布式配置時(shí),可以保留localhost,讓Master節(jié)點(diǎn)同時(shí)充當(dāng)名稱節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn),或者也可以刪掉localhost這行,讓Master節(jié)點(diǎn)僅作為名稱節(jié)點(diǎn)使用。
本教程讓Master節(jié)點(diǎn)僅作為名稱節(jié)點(diǎn)使用,因此將workers文件中原來(lái)的localhost刪除,只添加如下一行內(nèi)容:
Slave1
(2)修改core-site.xml
請(qǐng)把core-site.xml文件修改為如下內(nèi)容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
(3)修改hdfs-site.xml
對(duì)于Hadoop的分布式文件系統(tǒng)HDFS而言,一般都是采用冗余存儲(chǔ),冗余因子通常為3,也就是說(shuō),一份數(shù)據(jù)保存三份副本。但是,本教程只有一個(gè)Slave節(jié)點(diǎn)作為數(shù)據(jù)節(jié)點(diǎn),即集群中只有一個(gè)數(shù)據(jù)節(jié)點(diǎn),數(shù)據(jù)只能保存一份,所以 ,dfs.replication的值還是設(shè)置為 1。hdfs-site.xml具體內(nèi)容如下:
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
(4)修改mapred-site.xml
把mapred-site.xml文件配置成如下內(nèi)容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
</configuration>
(5)修改yarn-site.xml
請(qǐng)把yarn-site.xml文件配置成如下內(nèi)容:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
上述5個(gè)文件全部配置完成以后,需要把Master節(jié)點(diǎn)上的“/usr/local/hadoop”文件夾復(fù)制到各個(gè)節(jié)點(diǎn)上。具體來(lái)說(shuō),需要首先在Master節(jié)點(diǎn)上執(zhí)行如下命令:
cd /usr/local
sudo rm -r ./hadoop/tmp # 刪除 Hadoop 臨時(shí)文件
sudo rm -r ./hadoop/logs/* # 刪除日志文件
tar -zcf ~/hadoop.master.tar.gz ./hadoop # 先壓縮再?gòu)?fù)制
cd ~
scp ./hadoop.master.tar.gz Slave1:/home/hadoop
然后在Slave1節(jié)點(diǎn)上執(zhí)行如下命令:
sudo rm -r /usr/local/hadoop # 刪掉舊的(如果存在)
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hadoop
首次啟動(dòng)Hadoop集群時(shí),需要先在Master節(jié)點(diǎn)執(zhí)行名稱節(jié)點(diǎn)的格式化(只需要執(zhí)行這一次,后面再啟動(dòng)Hadoop時(shí),不要再次格式化名稱節(jié)點(diǎn)),命令如下:
hdfs namenode -format
現(xiàn)在就可以啟動(dòng)Hadoop了,啟動(dòng)需要在Master節(jié)點(diǎn)上進(jìn)行,執(zhí)行如下命令:
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
?通過(guò)命令jps可以查看各個(gè)節(jié)點(diǎn)所啟動(dòng)的進(jìn)程。如果已經(jīng)正確啟動(dòng),則在Master節(jié)點(diǎn)上可以看到NameNode、ResourceManager、SecondrryNameNode和JobHistoryServer進(jìn)程,如下圖所示。
在Slave節(jié)點(diǎn)可以看到DataNode和NodeManager進(jìn)程,如下圖所示。
?
缺少任一進(jìn)程都表示出錯(cuò)。另外還需要在Master節(jié)點(diǎn)上通過(guò)命令“hdfs dfsadmin -report”查看數(shù)據(jù)節(jié)點(diǎn)是否正常啟動(dòng),如果屏幕信息中的“Live datanodes”不為 0 ,則說(shuō)明集群?jiǎn)?dòng)成功。由于本教程只有1個(gè)Slave節(jié)點(diǎn)充當(dāng)數(shù)據(jù)節(jié)點(diǎn),因此,數(shù)據(jù)節(jié)點(diǎn)啟動(dòng)成功以后,會(huì)顯示如下圖所示信息。
也可以在Linux系統(tǒng)的瀏覽器中輸入地址“http://master:9870/”,通過(guò) Web 頁(yè)面看到查看名稱節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)的狀態(tài)。如果不成功,可以通過(guò)啟動(dòng)日志排查原因。?
? ? ? ? 特別需要注意的是,本教程只實(shí)現(xiàn)了一個(gè)從節(jié)點(diǎn),如果你有更多的從節(jié)點(diǎn),那么對(duì)應(yīng)它們的操作都是一樣的。
參考文獻(xiàn)
林子雨編著-大數(shù)據(jù)軟件安裝和編程實(shí)踐指南_廈門大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)室 (xmu.edu.cn)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-847766.html
等等文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-847766.html
到了這里,關(guān)于Hadoop完全分布式搭建(Hadoop-3.3.0)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!