書名: 大數據基礎與應用作者名: 趙國生 王健 宋一兵主編本章字數: 2167字更新時間: 2021-12-15 16:00:26
2.5 Hadoop環境搭建
Hadoop架構有很多的組件,在2.6節中會有介紹,本節主要針對Hadoop的搭建進行簡單描述,主要使用Linux命令進行搭建。
以下打開文件用的Linux命令是gedit,如果出現打開文件是只讀、無法修改的情況,請將gedit命令改為vim命令即可。vim編輯器的使用方法和一般的編輯器方法不同,在這里不做過多介紹。如果不想使用vim,可以在代碼前加sudo。
2.5.1 JDK安裝和測試
1)檢查是否安裝JDK。切換為root用戶,使用命令“java-version”查看是否已經安裝了java JDK。若存在其他JDK,先進行卸載。可以通過在命令終端執行命令java-version進行檢測。如果發現有存在版本,則需要執行命令rpm-qa/grepjdk和rpm-qa/grep gcj。然后根據查找到的軟件,通過執行yum-y remove進行卸載。結果如圖2-35所示。

圖2-35 查看是否安裝JDK
2)在Home下創建文件夾resourses,結果如圖2-36所示。
3)將JDK的資源復制到resourses中,如圖2-37所示。

圖2-36 創建文件夾

圖2-37 將JDK的資源復制到resourses中
4)復制文件到/usr/java下。
5)解壓。
①使用Linux命令解壓,輸入命令:

結果如圖2-38所示。

圖2-38 字符界面解壓
②如果是圖形界面的話,選擇提取即可,如圖2-39所示。

圖2-39 圖形界面解壓
6)配置環境變量。輸入代碼:

在文件尾部添加代碼:

/usr/java/jdk1.7.0_67是解壓縮之后自動創建的文件夾,可根據實際安裝位置進行更改。
輸入以下代碼,使修改生效:

該過程不會返回任何信息。
再次執行“java-version”測試,結果如圖2-40所示。

圖2-40 “java-version”測試
2.5.2 Hadoop安裝和配置
在開始安裝之前,先設置主機名,切換用戶root,如圖2-41所示。

圖2-41 切換用戶root
打開文件。

輸入以下代碼,其中master是主機名。

使文件生效。

關閉終端,重新打開終端,結果如圖2-42所示。

圖2-42 重新打開終端后結果
重啟虛擬機后,名字沒有變成master,所以還要在hostname文件中修改,將內容改為master,即主機名。

其他虛擬機的主機名也從默認的localhost更改為對應的slave0和slave1。現在開始進行Hadoop安裝和配置。
(1)解壓hadoop壓縮包
將Hadoop的安裝包放到Home下的resources中,如圖2-43所示。

圖2-43 將Hadoop的安裝包放到Home下的resources中
進入resources,解壓安裝包,結果如圖2-44所示。


圖2-44 解壓安裝包
解壓之后會在用戶目錄下自動創建文件夾,如圖2-45所示,作為Hadoop的安裝目錄。
但如果想要使用Hadoop,還需要完成一系列的配置。
(2)配置Hadoop環境變量
hadoop-env.sh是Hadoop的環境變量文件,位于hadoop-2.6.0/etc/hadoop子目錄下。我們只需配置該文件的JDK路徑即可。

將文件前面的“export JAVA_HOME=${JAVA_HOME}”改成實際的JDK安裝路徑。

如圖2-46所示,編輯完成后保存退出。

圖2-45 自動創建文件夾

圖2-46 修改JDK路徑
(3)配置Yarn環境變量
需要更改的環境變量為yarn-env.sh,其余的與Hadoop環境變量配置方法一致。
(4)配置核心組件文件
core-site.xml是Hadoop的核心組件文件,位于hadoop-2.6.0/etc/hadoop子目錄下,打開該文件。

將以下配置代碼放在文件的<configuration></configuration >之間,結果如圖2-47所示,編輯后保存退出。

(5)配置文件系統
hdfs-site.xml是Hadoop的文件系統配置文件,位于hadoop-2.6.0/etc/hadoop子目錄下,打開該文件。

將以下配置代碼放在文件的<configuration></configuration >之間,如圖2-48所示,編輯后保存退出。


圖2-47 配置核心組件文件結果

圖2-48 配置文件系統結果
這里的1指的是HDFS數據塊的副本數,因為HDFS最大副本數是3,所以超過3沒有任何意義。
(6)配置yarn-site.xml
yarn-site.xml是Hadoop的站點配置文件,位于hadoop-2.6.0/etc/hadoop子目錄下,打開該文件。

將以下配置代碼放在文件的<configuration></configuration >之間,結果如圖2-49所示,編輯后保存退出。

(7)配置MapReduce計算框架文件
在hadoop-2.6.0/etc/hadoop子目錄下找到mapred-site.xml.template文件,在當前目錄下復制改名并打開文件。

圖2-49 配置yarn-site.xml后結果

在文件下方添加下列代碼,結果如2-50所示。

圖2-50 配置MapReduce計算框架文件結果

(8)配置Master的slaves文件
slaves文件給出Hadoop集群的Slave節點列表,因此十分重要。在啟動Hadoop時,系統根據該文件中的節點名稱列表啟動集群,不在表中的節點不會被視為計算節點。

編輯slaves文件。

用戶根據自己搭建的集群情況進行編輯。
復制Master上的Hadoop到Slave節點,如要提高系統部署效率,復制Master上的Hadoop到Slave節點是一個更好的選擇。每個節點復制一次,以slave0為例,命令如下:

在這一步當中需要進行密碼驗證,下一節將會對如何免密登錄進行講解。
2.5.3 SSH免密碼配置
SSH是Secure Shell的縮寫,由IETF的網絡工作小組制定,SSH是建立在應用層和傳輸層上的安全協議,專為遠程登錄會話和其他網絡服務提供安全性的協議。目前SSH相對比較可靠。在大數據集群中的Linux計算機之間要頻繁地通信,而Linux的通信需要進行用戶的身份驗證,即輸入登錄密碼。小規模通信的耽誤時間可以忽略,如果是大規模的通信,工作效率會因為輸入密碼而降低,如果能夠免密登錄,就會大大提高效率。
免密登錄是指兩臺Linux機器自檢使用SSH連接時不需要用戶名和密碼。下面的配置分為在Master節點和所有Slave節點的操作。
本章使用的是普通用戶iTheds。
(1)Master節點配置
首先,在終端生成密鑰:

輸入該命令后會有一系列的提示,默認直接按〈Enter〉鍵4次即可,執行完上面的命令后會生成id_rsa(私鑰)和id_rsa.pud(公鑰)文件,結果如圖2-51所示。

圖2-51 生成密鑰
ssh-keygen是用來生成private和public密鑰對的命令,將public密鑰復制到遠程集群后,使用SSH到另一臺機器就不用密碼了。-t是指定加密算法的參數,這里使用的加密算法是基于大數因式分解的rsa算法,也是應用最廣泛的非對稱加密算法。
生成的密鑰在.ssh目錄下,切換到該目錄,查看文件詳細信息,結果如圖2-52所示。

圖2-52 文件的詳細信息
將公鑰文件復制到.ssh下。

修改authorized_keys文件的權限為600。

此時各文件的詳細信息如圖2-53所示。

圖2-53 各文件的詳細信息
將authorized_keys文件復制到所有的Slave節點。以復制到Slave0節點上為例,使用如下命令,結果如圖2-54所示。


圖2-54 將authorized_keys文件復制到所有的Slave節點
(2)Slave節點配置
在slave0和slave1上搭建Slave節點環境,其配置步驟與Master的配置步驟相同,該過程中使用的authorized_keys文件是從Master復制過來的,移動到.ssh目錄下,修改權限為600。因過程基本一致,具體操作就留給讀者自行搭建。測試使用命令“ssh slave0”即可。