天天看點

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

本節書摘來自華章計算機《hadoop與大資料挖掘》一書中的第2章,第2.2節,作者 張良均 樊哲 位文超 劉名軍 許國傑 周龍 焦正升,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

上面的虛拟機參數配置隻是參考,可以根據自身機器的實際情況進行調整。

在配置好hadoop叢集所需機器後,先确認下叢集拓撲,本次部署采用的叢集拓撲如圖2-16所示。

如文中未做說明,則所有操作都是在root使用者下執行。但是,在生産環節,一般不會使用root使用者,這點需要注意。

(1)檔案下載下傳

到www.oracle.com網站上下載下傳自己系統對應jdk版本。檔案名如jdk-7u-linux-x64.tar.gz,注意下載下傳64位的版本。

(2)解壓檔案

把下載下傳下來的檔案上傳到linux機器,并解壓縮到某個路徑下,如/usr/local目錄。

(3)配置java環境變量

編輯/etc/profile檔案,在末尾加上java配置,如代碼清單2-1所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

1)生成公鑰和私鑰,執行ssh-keygen –t rsa,接着按3次enter鍵即可,如代碼清單2-2所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置
《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

在~/.ssh目錄生成兩個檔案,id_rsa為私鑰,id_rsa.pub為公鑰。

2)設定hosts檔案。在/etc/hosts檔案中配置ip與hostname的映射(ip根據自己機器情況設定),如代碼清單2-3所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

3)導入公鑰到認證檔案,執行ssh-copy-id指令,如代碼清單2-4所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

接着分别執行:

即可導入公鑰到其他所有子節點。

4)驗證。打開終端,直接輸入ssh master、ssh slave1、ssh slave2、ssh slave3,如果可直接登入,而不需要輸入密碼,則ssh無密碼登入配置成功。

配置ntp主要是為了進行叢集間的時間同步,需要注意在master、slave1、slave2、slave3節點分别執行“yum install ntp”,即可安裝該軟體。

假設将master節點作為ntp服務主節點,那麼其配置(修改/etc/ntp.conf檔案)如代碼清單2-5所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

在slave1~slave3配置ntp,同樣修改/etc/ntp.conf檔案,内容如代碼清單2-6所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

在master、slave1、slave2、slave3節點執行“service ntpd start &chkconfig ntpd on”,即可啟動并永久啟動ntp服務。

上傳hadoop安裝包到master機器,并解壓縮到/usr/local目錄,使用代碼:

hadoop配置涉及的配置檔案有以下7個:

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

各個配置檔案修改如下所示。

1)配置檔案1:hadoop-env.sh。

該檔案是hadoop運作基本環境的配置,需要修改為jdk的實際位置。故在該檔案中修改java_home值為本機安裝位置,如代碼清單2-7所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

2)配置檔案2:yarn-env.sh。

該檔案是yarn架構運作環境的配置,同樣需要修改java所在位置。在該檔案中修改java_home值為本機安裝位置,如代碼清單2-8所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

3)配置檔案3:slaves。

該檔案裡面儲存所有slave節點的資訊,如代碼清單2-9所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

4)配置檔案4:core-site.xml,配置内容如代碼清單2-10所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

這個是hadoop的核心配置檔案,這裡需要配置兩個屬性:fs.defaultfs配置了hadoop的hdfs系統的命名,位置為主機的8020端口,這裡需要注意替換hdfs://master:8020,中的斜體master,該名字為namenode所在機器的機器名;hadoop.tmp.dir配置了hadoop的臨時檔案的位置。

5)配置檔案5:hdfs-site.xml,配置内容如代碼清單2-11所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置
《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

這個是hdfs相關的配置檔案,dfs.namenode.name.dir和dfs.datanode.data.dir分别指定了namenode中繼資料和datanode資料存儲位置;dfs.namenode.secondary.http-address配置的是secondarynamenode的位址,同樣需要注意修改“master”為實際secondary-namenode位址;dfs.replication配置了檔案塊的副本數,預設就是3個,是以這裡也可以不配置。

6)配置檔案6:mapred-site.xml,配置内容如代碼清單2-12所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

這個是mapreduce相關的配置,由于hadoop2.x使用了yarn架構,是以必須在ma-preduce.framework.name屬性下配置yarn。mapreduce.jobhistory.address和mapreduce.job-history.webapp.address是與jobhistoryserver相關的配置,即運作mapreduce任務的日志相關服務,這裡同樣需要注意修改“master”為實際服務所在機器的機器名。

7)配置檔案7:yarn-site.xml,配置内容如代碼清單2-13所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置
《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置
《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置
《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

該檔案為yarn架構的配置,在最開始命名了一個名為yarn.resourcemanager.hostname的變量,這樣在後面yarn的相關配置中就可以直接引用該變量了。其他配置保持不變即可。

将配置好的hadoop複制到其他節點,直接執行如代碼清單2-14所示指令即可(注意,本文使用的從節點名字是slave1、slave2、slave3,讀者可根據自己機器實際情況修改)。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

做完hadoop的所有配置後,即可執行格式化namenode操作。該操作會在namenode所在機器初始化一些hdfs的相關配置,其指令如代碼清單2-15所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

若出現“storage directory /data/hadoop/hdfs/name has been successsully formatted”的提示,則格式化成功(注意,/data/hadoop/hdfs/name目錄就是前面配置的dfs.namenode.name.dir的值)。

啟動叢集,隻需要在master節點(namenode服務所在節點)直接進入hadoop安裝目錄,分别執行如代碼清單2-16所示的指令即可。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

關閉叢集,同樣隻需要在master節點(namenode服務所在節點)直接進入hadoop安裝目錄,分别執行如代碼清單2-17所示的指令即可(注意關閉順序)。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

hadoop叢集相關服務監控如表2-2所示,其監控示意分别如圖2-17、圖2-18、圖2-19所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置
《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

在使用hadoop的過程中,如果每次啟動hadoop叢集都需要分别執行3次指令才能啟動叢集,那麼每次叢集啟動或關閉都将很繁瑣。為了減少這種操作,可以編寫一個腳本來控制hadoop叢集的啟動與關閉,是以本實驗就是完成這個功能。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

實驗步驟:

1)學習linux shell指令相關代碼;

2)了解hadoop叢集啟動關閉流程;

3)編寫叢集啟動關閉shell腳本;

4)測試運作。

在書中的後續内容中,會針對hadoop相關mapreduce程式進行講解以及開發,一個好的程式講解及代碼編寫環境,将會非常有利于對應的分析,是以本節就對hadoop代碼分析與開發環境配置做講解。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置
《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

3)打開eclipse,依次選擇window->perspective->open perspective->other->map/reduce,如圖2-22、圖2-23所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

選中後,單擊ok按鈕,重新開機eclipse。

4)單擊圖2-24中箭頭所指小象圖示,即可添加叢集。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

5)配置參數,如圖2-25所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

6)檢視配置的叢集,如圖2-26、圖2-27所示。

《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置
《Hadoop與大資料挖掘》——2.2 Hadoop配置及IDE配置

思考:

1)為什麼要配置hadoop ide,不配置可以嗎?還有其他的配置方式嗎?

2)如果有其他方式配置hadoop ide,會是什麼呢?

繼續閱讀