專家提醒 部署Hadoop時應該注意具體事項
本節向大家簡單描述一下在部署Hadoop時應該注意的事項,相信通過本節的學習你對如何部署Hadoop有更深刻的認識,讓我們一起來關注部署Hadoop時的注意事項吧。
部署Hadoop時的注意事項
最近云計算在中國極為火爆,但看了云計算的那些云山霧罩的概念后,實在讓人望而卻步。還好不是所有的東西都摸不著頭腦,Hadoop就是實實在在的技術之一。不才最近仔細品讀了Hadoop的基礎資料,特別是如何部署Hadoop的相關技術文檔,發現其中有許多不為人注意的東西,在此整理一下。Hadoop 開發者入門專刊(pdf) 是目前比較權威的文檔;有什么與Hadoop相關的技術問題也可以到專業的Hadoop技術論壇上去討論。
Hadoop 集群的組成成份
Hadoop的核心功能有兩個:HDFS與MapReduce 。與HDFS相關的服務有NameNode 、SecondaryNameNode 及DataNode ;與MapReduce 相關的服務有JobTracker 和TaskTracker 兩種。
Hadoop集群中有兩種角色:master與slave,master又分為主master與次master。其中:
主 master同時提供NameNode 、SecondaryNameNode 及JobTracker 三種服務;
次master只提供SecondaryNameNode 服務;
所有slave可以提供DateNode 或TaskTracker 兩種服務。
Hadoop有三種集群方式可以選擇:
Local (Standalone) Mode(無集群模式)
Pseudo-Distributed Mode(單機集群模式)
Fully-Distributed Mode(多機集群模式)
一個Hadoop集群由多臺電腦組成,每臺電腦可作為一種或多種角色存在。
當使用Pseudo-Distributed Mode創建Hadoop集群時,一臺電腦同時完成主master和slave兩種角色的任務。在Fully-Distributed Mode下,如果只有一臺電腦作為master,則此電腦完成主master的任務;如果有多臺電腦作為master存在,則第一臺電腦完成主 master的任務,其它電腦完成次master的任務。
實際部署Hadoop集群
在實際操作中,集群中的電腦名字都是通過/etc/hosts文件指定的。集群中主master是核心,擔任這種角色的電腦在其/etc/hosts中保存有集群中所有電腦的名字。次 master與所有的slave只負責與主master聯系,所以在這些計算機上的/etc/hosts中只要保存自身和主master的計算機別名即可。
集群模式的選擇主要靠主master上$HADOOP_HOME /conf /目錄下的masters與slaves兩個文件配置完成。如果需要Pseudo-Distributed Mode,則masters與slaves兩個文件的內容同時指向主master電腦名字即可。如果需要Fully-Distributed Mode,則masters文件中第一行記錄的是主master電腦名字,其它行記錄的是次master電腦名字。
無密碼SSH 登錄
啟動Hadoop的方式是在主master上調用下面的命令:
$HADOOP_HOME /bin/start-all.sh
此調用過程中,Hadoop依次啟動以下服務:
在主master上啟動NameNode 服務;
在主master上啟動SecondaryNameNode 服務;
在次master上啟動SecondaryNameNode 服務;
在所有slave上啟動DataNode 服務;
在主master上啟動JobTracker 服務;
在所有slave上的TaskTracker 服務。
部署Hadoop過程中Hadoop需要啟動服務,在此需要注意以下幾點:
啟動NameNode 與JobTracker 服務不需要SSH授權;
需要通過SSH登錄之后才能啟動SecondaryNameNode 、DataNode 以及TaskTracker 服務,因此:
因為需要啟動SencondaryNameNode 服務,所以要為主master提供SSH授權;
因為需要啟動SencoddaryNameNode 服務,所以要為所有的次master提供SSH授權;
因為需要啟動DataNode 和TaskTracker 服務,所以要為所有的slave提供SSH授權。
總而言之,要為Hadoop集群中的所有計算機提供SSH授權。
為什么要提供無密碼SSH登錄方式呢?為的是圖省事兒。試想在啟動 Hadoop集群過程中,要手動輸入每一臺電腦的SSH密碼將是一件多么煩人的事!SSH授權的方法在這里不做詳細的描述。無密碼SSH登錄技術也是相對成熟的技術。但有一個環節需要注意,那就是文件的訪問權限問題。
表現為:
Linux系統中$HOME目錄下的.ssh目錄為用戶所有,權限必須為700(只有用戶自己可以全權訪問);
.ssh目錄下的授權文件“authorized_keys”為用戶所有,權限必須為644。本節有關部署Hadoop應該注意的事項介紹完畢。
【編輯推薦】