hadoop分散式環境搭建(vmware14+hadoop2.9.0(包含yarn)+Ubuntu16.04LTS+jdk1.8.0_161)
博主最近在vmware workstation14+hadoop2.9.0+Ubuntu16.04LTS環境下搭建了一個master(一個namenode)兩個slave(即兩個datanode)的分散式hadoop環境,下面將本次博主搭建的過程及步驟按照和各位博友分享,由於博主未儲存搭建時各步驟的截圖,因此將使用前輩們各步驟截圖或者無截圖,望各位前輩見諒。
進行配置之前,需要在ubuntu中安裝vim外掛編輯檔案,相比於vi和gedit工具,該工具更容易操作,也能避免亂碼等一系列不必要的問題。
安裝命令:sudo apt-get install vim
(一)第一步:新建三臺虛擬機器,並進行相應的網路配置(靜態IP,hostname檔案配置,hosts檔案配置,關閉防火牆或者開啟相應埠)
(1)利用vmware workstation14新建三個虛擬機器(網路模式選擇橋接模式)
並根據實體機所在的網路環境,在虛擬機器中設定靜態IP,博主搭建的網路環境如下(各位博友根據自己網路環境進行相應變化):
master節點:192.168.1.200
slave1節點:192.168.1.201
slave2節點:192.168.1.202
以上配置可以從介面進行操作,以master為例。
(2)修改hostname檔案,需要root許可權,命令:su root,輸入密碼,然後進入root,然後vim etc/hostname,master節點機器,改為master,於此相同,slave1和slave2節點也分別改為slave1和slave2
(3)修改hosts檔案,將下列內容新增進hosts檔案(三個節點均需要配置此步驟,需要root許可權,進入root參考上條,以master為例)
192.168.1.200 master
192.168.1.201 slave1
192.168.1.202 slave2
(4)關閉防火牆或者開啟使用埠(三個節點均需要配置此步驟,博主使用的是關閉防火牆,簡單粗暴)
進入root使用者,關閉防火牆命令為:ufw disable
執行命令後,提示防火牆服務不會在開機時啟動即可
(5)測試
master節點:ping slave1 看是否ping通
ping slave2 看是否ping通
slave1 節點:ping master 看是否ping通
ping slave2 看是否ping通
slave2 節點:ping master 看是否ping通
ping slave1 看是否ping通
如以上測試通過,則第一步配置成功
(二)第二步,三臺虛擬機器分別新建相同的使用者(如果新建的三臺虛擬機器有相同的使用者,我覺得此步驟可以省略,以master為例)
(1)新建名為hadoop使用者組
(2)新增一個使用者mwq,並新增進hadoop使用者組,並制定使用者目錄
(3)設定mwq使用者密碼,連續輸入兩次
(4)設定mwq使用者許可權,賦予admin許可權
以下步驟切換到mwq使用者進行
(三)第三步,機器未安裝ssh時需安裝ssh服務,並在三臺虛擬機器之間開啟ssh免密的登入
(1)三臺機器均需安裝ssh服務(以master節點為例)
(2)虛擬機器自身免密登入自身(三臺虛擬機器均需要此步驟設定),以master節點為例,輸入ssh-keygen -t rsa -P "",敲回車兩次,直到出現以下介面
進入.ssh資料夾
用cat id_rsa.pub >> authorized_keys 命令生成免密登入authorized_keys,實現免密登入
效果如下:
第一次需要輸入yes,以後就不需要了
(3)配置master到slave1和slave2的免密登入(該操作在slave1和slave2上操作)
首先將master中生成的id_rsa.pub複製到已安裝ssh服務的slave1和slave2中的.ssh資料夾
然後利用cat id_rsa.pub >> authorized_keys實現master登入到slave1和slave2的免密登入
(四)安裝java jdk環境(本文使用jdk1.8.0_161,三臺虛擬機器均需要此操作)
(1)首先去oracle官網,下載jdk8,預設檔案儲存到/home/mwq/Downloads
(2)我的解壓目錄為/usr/lib下的jvm資料夾,而且jvm資料夾不存在,需要在root許可權下建立,如下圖所示
進入jvm資料夾
複製Downloads資料夾下的jdk到jvm並解壓
切換到mwq使用者並配置環境變數,編輯/.bashrc檔案
在檔案末尾輸入以下內容
使配置檔案生效
檢視是否配置成功
另外的slave1和slave2節點也可按照以上步驟配置
(五)下載並配置hadoop(三臺主機均需相同配置)
在以下地址http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz下載hadoop-2.9.0,千萬別下成hadoop-2.9.0-src.tar.gz
博主在/home/mwq中新建hadoop資料夾,並將hadoop-2.9.0解壓到hadoop下面(三臺主機存放hadoop-2.9.0檔案的位置相同)
修改/home/mwq/hadoop/hadoop-2.9.0/etc/hadoop/hadoop-env.sh檔案
修改/home/mwq/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml檔案
修改/home/mwq/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml檔案
修改/home/mwq/hadoop/hadoop-2.9.0/etc/hadoop/mapred-site.xml.template檔案
修改/home/mwq/hadoop/hadoop-2.9.0/etc/hadoop/slaves檔案
修改/etc/profile檔案,加入以下內容
執行結果:
(六)格式化,只需在master節點
hadoop namenode -format,測試通過後可以配置yarn和mapreduce
(七)配置yarn,主要修改yarn-env.sh,yarn-site.xml和mapred-sitexml,master節點修改好之後,複製到slave1和salve2節點即可
yarn-env.sh 新增jdk目錄
mapred-site.xml在剛才配置的基礎上,增加以下未有的內容
yarn-site.xml增加以下配置
(七)啟動hadoop服務
start-all.sh