因篇幅過長,故分為兩節,上節主要說明hadoop運行環境和必須的基礎軟件,包括VMware虛擬機軟件的說明安裝、Xmanager5管理軟件以及CentOS操作系統的安裝和基本網絡配置。具體請參看:
【HADOOP】| 環境搭建:從零開始搭建hadoop大數據平台(單機/偽分布式)-上
6. Linux節點配置
設置主機名:根據規划修改主機名,執行hostnamectl set-hostname hdoop1,修改主機名並寫入配置文件,使用hostname查看當前生效的主機名。
關閉防火牆:使用systemctl命令關閉防火牆,stop是本次關閉,disable是下次開機也不會啟動(永久關閉)。這里我們需要使用disable徹底關閉。
停止selinux:使用getenforce命令可以查詢selinux狀態,使用setenforce命令設置狀態 0表示允許通過(即本次關閉selinux,下次啟動還會還原,要想永久關閉,則需要使用vim編輯配置文件,下圖為getenforce和setenforce的使用)
vim編輯器的簡要使用說明:
vim編輯器有三種狀態:普通模式,編輯模式,命令模式
普通模式按i鍵進入編輯模式,按esc鍵回普通模式
普通模式進入命令模式,直接在普通模式下輸入(冒號加命令)
:q!(不保存退出) :q(直接退出)
:w(保存不退出) :wq(保存退出)
selinux的配置文件目錄:etc/selinux/config
輸入命令:vim etc/selinux/config 即可打開配置文件編輯,按i鍵進入編輯模式,修改為如下結果。cat為查看文件命令。
利用VMware克隆另外兩個節點:利用節點1的虛擬機克隆出另外兩台節點虛擬機,克隆完成后按規划修改主機名和IP地址。分別為hadoop2節點IP為192.168.1.20,hadoop3節點IP為192.168.1.30,修改方法與前面一致。
設置主機名和IP對應:每個節點都要設置,寫法是一樣的,完成之后可以直接ping主機名來測試是否設置成功。輸入vim /etc/hosts打開配置文件編輯,修改為如下結果。(三個節點都是一樣的方式)。
設置ssh互信:ssh免密碼登錄如果不配置,在啟動集群時候需要輸入每個節點的密碼方可啟動,為避免多次輸入密碼,可配置ssh免密碼登錄。下面以hadoop1為例,首先生成密鑰,然后將密鑰傳給其它節點,也要傳給自己。(另外兩個節點也要做,做法是一樣的,如下所示)。
首先,生成密鑰:ssh-keygen (敲三次回車)
然后將密鑰傳給其它節點(包括自己),每個節點都要做,命令格式如下:
用ssh測試一下能否直接登陸(下圖是從節點1登陸至節點2和節點3)
目錄建立:根據規划為每個節點創建目錄文件夾。
7. JDK安裝配置
拷貝JDK包至節點機:首先使用Xftp將JDK安裝文件傳輸至Linux節點機,打開Xftp工具,配置會話,在Xftp工作區左側打開物理機需要上傳軟件所在的目錄,再在右側打開節點機hadoop1的目的目錄(/hadoop/soft),將文件由左側拖至右側即可。
解壓JDK: tar -zxvf jdk-8u161-linux-x64.tar.gz,解壓完成后即可看到藍色的JDK文件夾
編輯環境變量:配置root用戶的環境變量,切換至家目錄,使用vim .bash_profile編輯環境變量。添加如下內容。
驗證:使用source .bash_profile重新加載環境變量,使用命令java –version查看現在java的版本,看能否成功執行,結果如下。
其它節點安裝:將節點hadoop1上的Java拷貝到另外兩個節點上,然后分別登陸至兩個節點,按上面的方法設置另外兩個節點的環境變量。完成后重新加載環境變量,查看版本驗證一下。
8. Hadoop安裝配置
將Hadoop軟件包上傳至節點1:利用Xftp將物理機上的hadoop-2.8.3.tar.gz傳輸至節點1上(/hadoop/soft)目錄下。
解壓Hadoop: tar -zxvf hadoop-2.8.3.tar.gz
進入Hadoop配置文件目錄:如下圖所示
編輯Hadoop配置文件:需要編輯hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves。(小建議:可以用Xftp將這些文件復制到windows系統上,用Notepad++修改保存,然后在復制到每個節點相應的文件夾里覆蓋原來的)。當然,也可在linux下用vim編輯這些文件,只是較為不便。
a. 設置hadoop-env.sh和yarn-env.sh中的java環境變量
b.配置core-site.xml文件
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.1.10:9000</value> </property> <property> <name>hadoop,tmp.dir</name> <value>/hadoop/tmp/</value> </property> </configuration>
c.配置hdfs-site.xml文件
<configuration> <property> <name>dfs.namenode.http-address</name> <value>192.168.1.10:50070</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>192.168.1.20:50090</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///hadoop/nn</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///hadoop/dn</value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///hadoop/secondarynn</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>
d.配置mapred-site.xml文件(由於默認沒有mapred-site.xml文件,只有一個mapred-site.xml.template文件,可以將這個template文件重命名為mapred-site.xml)
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>192.168.1.10:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>192.168.1.10:19888</value> </property> </configuration>
e.配置yarn-site.xml文件
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>192.168.1.10:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>192.168.1.10:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>192.168.1.10:8031</value> </property> <property>
f.配置slaves文件
編輯環境變量:配置root用戶的環境變量,切換至家目錄,使用vim .bash_profile編輯環境變量。添加如下內容。
驗證:使用source .bash_profile重新加載環境變量,使用命令hadoop version查看現在hadoop的版本,結果如下。
其它節點安裝:將節點hadoop1上已經配置好的hadoop拷貝到另外兩個節點上,然后按上面的方法設置另外兩個節點的環境變量。(使用vim .bash_profile編輯環境變量),完成后用上面查看版本的方式驗證一下。
9. Hadoop啟動
使用hdfs namenode –format格式化hdfs文件系統,如下圖。(僅在第一次啟動之前需要格式化,后面啟動不需要格式化,只需在節點1上執行)
使用start-all.sh啟動所有服務(只需在節點1上執行)
啟動成功可分別登陸至每個節點運行jps查看每各個節點上運行的進程,正常情況如下。
在物理機上訪問hdfs的web界面,打開物理機瀏覽器,輸入網址:http://192.168.1.10:50070,結果如下圖能看到datanode的數據和啟動datanode相同,表示啟動成功。
同上,使用瀏覽器打開http://192.168.1.10:8088,結果如下圖,表示yarn正常正常啟動。