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