Hadoop完全分佈模式的搭建
Hadoop完全分佈模式的搭建
目錄- 1.安裝前準備
- 2.修改主機名
- 3.對映IP地址及主機名
- 4.免密登入設定
- 5.安裝NTP服務
- 6.安裝Hadoop
- 7.設定Hadoop配置檔案
- 8.格式化HDFS
- 9.啟動Hadoop
- 10.驗證Hadoop程序
- 11.通過Web訪問Hadoop
1.安裝前準備
在VMware安裝3臺Ubuntu16.04的虛擬機器並且都安裝jdk。採用ifconfig命令檢視IP地址,
我的IP地址依次是:
192.168.17.135
192.168.17.136
192.168.17.137
IP地址建議設定成固定IP地址
2.修改主機名
(1)修改第一臺主機名稱為node1。
sudo vi /etc/hostname
將原有內容刪除,新增如下內容。
node1
重啟使之生效。
sudo reboot
(2)修改第二臺主機名稱為node2。
sudo vi /etc/hostname
將原有內容刪除,新增如下內容。
node2
重啟使之生效。
sudo reboot
(3)修改第三臺主機名稱為node3。
sudo vi /etc/hostname
將原有內容刪除,新增如下內容。
node3
重啟使之生效。
sudo reboot
3.對映IP地址及主機名
對3臺虛擬機器,依次修改/etc/hosts檔案。
sudo vi /etc/hosts
在檔案末尾新增如下內容。注意:IP地址要根據實際情況填寫。
192.168.17.135 node1 192.168.17.136 node2 192.168.17.137 node3
4.免密登入設定
在完全分散式模式下,叢集內任意一臺主機可免密登入叢集內所有主機,即實現了兩 兩免密登入。免密登入的設定方法和偽分佈模式的免密登入設定方法一樣,分別在 nodel.node2.node3主機上生成公鑰/私鑰金鑰對,然後將公鑰傳送給叢集內的所有主機。 下面以node1免密登入叢集內其他所有主機為例進行講解。在完成nodel主機免密登入 叢集內其他主機後,其他兩臺主機可仿照node1的步驟完成免密碼登入設定。
(1)在nodel主機生成金鑰對。
ssh-keygen -t rsa
其中,rsa表示加密演算法,鍵人上面一條命令後連續敲擊三次回車鍵,系統會自動在~/. ssh目錄下生成公鑰(id_rsa.pub)和私鑰(id_rsa),可通過命令$ls~/ssh檢視。
ls ~/.ssh
id_rsa id_rsa.pub
(2)將node1公鑰id_rsa.pub複製到node1、node2和node3主機上。
$ ssh-copy-id-i ~/.ssh/idrsa.pub nodel
$ ssh-copy-id -i ~/.ssh/id rsa.pub node2
$ ssh-copy-id-i ~/.ssh/id rsa.pub node3
(3)驗證免密登入:在nodel主機輸人一下命令驗證,注意主機名稱的變化。
$ ssh node1
$ ssh node2
$ ssh node3
5.安裝NTP服務
完全分散式模式由名臺主機組成,各個主機的時間可能存在較大差異。如果時間 異較大,執行MapReduce程式的時候會存在問題。NTP服務通過獲取網路時間使叢集內不同主機的時間保持一致。預設安裝Ubuntu作業系統時,不會安裝NTP服務。
在3臺主機分別安裝NTP服務,命令如下(在安裝NTP服務時需連線網際網路):
$ sudo apt-get install ntp
檢視時間服務是否執行,如果輸出有“ntp"字樣,說明NTP正在執行。
$ sudo dpkg -1 | grepntp
6.安裝Hadoop
下載hadoop2.7.3的安裝包
下載地址:http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/
解壓安裝包
將下載的hadoop-2.7.3.tar.gz檔案通過Xftp等工具上依次傳到3臺Ubuntu的~/soft目錄下中。
注意:
Xftp需要先安裝,安裝方法自行百度,上傳成功後ls命令檢視有hadoop-2.7.3.tar.gz
cd ~/soft #注意:soft目錄如果不存在,需要先用mkdir ~/soft命令建立
ls
hadoop-2.7.3.tar.gz
解壓安裝包
$ tar -zxvf hadoop-2.7.3.tar.gz
解壓後ls檢視發現多了一個目錄hadoop2.7.3
$ ls
hadoop-2.7.3.tar.gz hadoop-2.7.3
建立軟連結,方便使用
ln -s hadoop-2.7.3 hadoop
配置Linux環境變數
$ nano ~/.bashrc
在檔案末尾新增
export HADOOP_HOME=~/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
讓環境變數立即生效
$ source ~/.bashrc
另外兩臺Ubuntu主機node1、node2也按如上安裝。
7.設定Hadoop配置檔案
在node1主機進行操作。進人node1主機的Hadoop配置檔案目錄${HADOOP HOME}/ etc/hadoop。
$ cd~/hadoop/etc/hadoop
(1)設定hadoop-env.sh
vi hadoop-env.sh
找到含有export JAVA_HOME=${JAVA_HOME}一行,將等號後面的內容刪除,換成JAVA_HOME的絕對路徑,
export JAVA_HOME=自己jdk的絕對路徑
(2)設定core-site.xml.
$ vi core-site.xml
在<configuration與</configuration之間新增配置內容
新增的配置如下:
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
<!-- 以上主機名node1要按實際情況修改 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/jsy/soft/hadoop/tmp</value>
<!-- 以上jsy為使用者名稱要修改成自己的 -->
</property>
(3)設定hdfs-site.xml。
$ vi hdfs-site.xml
同樣在<configuration與</configuration之間新增配置內容,配置內容如下:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
(4)配置mapred-site.xml
原來沒有mapred-site.xml檔案,由mapred-site.xml.template複製出mapred-site.xml
$ cp mapred-site.xml.template mapred-site.xml
配置 mapred-site.xml
vi mapred-site.xml
同樣在<configuration與</configuration之間新增配置內容,配置內容如下:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(5) 配置yarn-site.xml
vi yarn-site.xml
同樣在<configuration與</configuration之間新增配置內容,配置內容如下:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
注意:node1為主機名,注意按實際修改。
(6) 配置slaves
vi slaves
將原有內容刪除,新增以下內容。
node2
node3
(7)分發配置。
將node1的配置檔案分發至node2和node3主機。
$ cd~/hadoop/etc/
$ scp-r hadoop jsy@ node2:~ /hadoop/etc/
$ scp-r hadoop jsy@ node3:~ /hadoop/etc/
8.格式化HDFS
在nodel主機操作,命令如下:
$ hdfs namenode -format
9.啟動Hadoop
啟動命令只需在node1主機操作。
採用下面命令分別啟動HDFS和YARN。
$ start-dfs.sh
$ start-yarn.sh
或者用以下命令啟動HDFS和YARN。
$ start-all.sh
10.驗證Hadoop程序
用jps命令分別在所有主機驗證。
$ jps
nodel主機包含以下3個程序表示啟動Hadoop成功。
$ jps
SecondaryNameNode
NameNode
ResourceManager
在node2和node3主機分別執行jps命令,均包含以下兩個程序表示啟動Hadoop成功。
$ jps
NodeManager
DataNode
如果某個主機少了某個程序,應該到對應主機去找相關的log檢視原因,log存放 在$ {HADOOP_HOME}/logs目錄下。例如,node3主機少了DataNode程序,則應該進 人node3主機的${HADOOP_HOME}/logs目錄下,檢視DataNode相關的log,找到含有 “WARN” Error”"Exception”等的關鍵字句,通過上網搜尋關鍵字句找到解決問題的 辦法。
$ ssh node3
$ cd~ /hadoop-2.7.3/logs
$ cathadoop-hadoop-datanode-node3.log
也可以通過vi命令檢視。
$ vi hadoop-hadoop-datanode-nodel.log
最新出現的錯誤,其資訊都在檔案末尾。
11.通過Web訪問Hadoop
(I) HDFS Web介面。
在Windows的測覽器中,輸人網址:http://192.168.17.136:50070,可以檢視NameNode和 DetaNode資訊,如圖所示。其中,192.168.30.136表示Master的IP地址,請根據實際 情況修改。
單擊Web頁面的Datanodes檢視DataNode資訊,如圖2-32所示,有兩個DataNode 正 在執行。
在 Windows測覽器中,輸人網址tp://192.168.30.136:5090,可以檢視Secondar NameNode資訊。
(2) YARN Web介面。
在Windows的瀏覽器中,輸人網址tp://9161.30.136:8088可以檢視叢集所有應用 程式的資訊,如圖2-34所示,可以看到Active Nodes為2,說明叢集有兩個NodeManage 節點正在執行。
至此,Hadoop完全分佈模式(叢集模式)搭建完成。
Java