
目的
本文描述了如何安裝、配置和管理有實(shí)際意義的Hadoop集群,其規(guī)模可從幾個(gè)節(jié)點(diǎn)的小集群到幾千個(gè)節(jié)點(diǎn)的超大集群。
如果你希望在單機(jī)上安裝Hadoop玩玩,從這里能找到相關(guān)細(xì)節(jié)。
先決條件
確保在你集群中的每個(gè)節(jié)點(diǎn)上都安裝了所有必需軟件。
安裝
安裝Hadoop集群通常要將安裝軟件解壓到集群內(nèi)的所有機(jī)器上。
通常,集群里的一臺(tái)機(jī)器被指定為NameNode,另一臺(tái)不同的機(jī)器被指定為JobTracker。這些機(jī)器是masters。余下的機(jī)器即作為DataNode也作為T(mén)askTracker。這些機(jī)器是slaves。
我們用HADOOP_HOME指代安裝的根路徑。通常,集群里的所有機(jī)器的HADOOP_HOME路徑相同。
配置
接下來(lái)的幾節(jié)描述了如何配置Hadoop集群。
配置文件
對(duì)Hadoop的配置通過(guò)conf/目錄下的兩個(gè)重要配置文件完成:
hadoop-default.xml - 只讀的默認(rèn)配置。
hadoop-site.xml- 集群特有的配置。
要了解更多關(guān)于這些配置文件如何影響Hadoop框架的細(xì)節(jié),請(qǐng)看這里。
此外,通過(guò)設(shè)置conf/hadoop-env.sh中的變量為集群特有的值,你可以對(duì)bin/目錄下的Hadoop腳本進(jìn)行控制。
集群配置
要配置Hadoop集群,你需要設(shè)置Hadoop守護(hù)進(jìn)程的運(yùn)行環(huán)境和Hadoop守護(hù)進(jìn)程的運(yùn)行參數(shù)。
Hadoop守護(hù)進(jìn)程指NameNode/DataNode 和JobTracker/TaskTracker。
配置Hadoop守護(hù)進(jìn)程的運(yùn)行環(huán)境
管理員可在conf/hadoop-env.sh腳本內(nèi)對(duì)Hadoop守護(hù)進(jìn)程的運(yùn)行環(huán)境做特別指定。
至少,你得設(shè)定JAVA_HOME使之在每一遠(yuǎn)端節(jié)點(diǎn)上都被正確設(shè)置。
管理員可以通過(guò)配置選項(xiàng)HADOOP_*_OPTS來(lái)分別配置各個(gè)守護(hù)進(jìn)程。 下表是可以配置的選項(xiàng)。
例如,配置Namenode時(shí),為了使其能夠并行回收垃圾(parallelGC),
要把下面的代碼加入到hadoop-env.sh:
export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC ${HADOOP_NAMENODE_OPTS}"
其它可定制的常用參數(shù)還包括:
HADOOP_LOG_DIR- 守護(hù)進(jìn)程日志文件的存放目錄。如果不存在會(huì)被自動(dòng)創(chuàng)建。
HADOOP_HEAPSIZE- 最大可用的堆大小,單位為MB。比如,1000MB。 這個(gè)參數(shù)用于設(shè)置hadoop守護(hù)進(jìn)程的堆大小。缺省大小是1000MB。
配置Hadoop守護(hù)進(jìn)程的運(yùn)行參數(shù)
這部分涉及Hadoop集群的重要參數(shù),這些參數(shù)在conf/hadoop-site.xml中指定。
通常,上述參數(shù)被標(biāo)記為 final 以確保它們不被用戶應(yīng)用更改。
現(xiàn)實(shí)世界的集群配置
這節(jié)羅列在大規(guī)模集群上運(yùn)行sort基準(zhǔn)測(cè)試(benchmark)時(shí)使用到的一些非缺省配置。
運(yùn)行sort900的一些非缺省配置值,sort900即在900個(gè)節(jié)點(diǎn)的集群上對(duì)9TB的數(shù)據(jù)進(jìn)行排序:
運(yùn)行sort1400和sort2000時(shí)需要更新的配置,即在1400個(gè)節(jié)點(diǎn)上對(duì)14TB的數(shù)據(jù)進(jìn)行排序和在2000個(gè)節(jié)點(diǎn)上對(duì)20TB的數(shù)據(jù)進(jìn)行排序:
Slaves
通常,你選擇集群中的一臺(tái)機(jī)器作為NameNode,另外一臺(tái)不同的機(jī)器作為JobTracker。余下的機(jī)器即作為DataNode又作為T(mén)askTracker,這些被稱(chēng)之為slaves。
在conf/slaves文件中列出所有slave的主機(jī)名或者IP地址,一行一個(gè)。
日志
Hadoop使用Apache log4j來(lái)記錄日志,它由Apache Commons Logging框架來(lái)實(shí)現(xiàn)。編輯conf/log4j.properties文件可以改變Hadoop守護(hù)進(jìn)程的日志配置(日志格式等)。
歷史日志
作業(yè)的歷史文件集中存放在hadoop.job.history.location,這個(gè)也可以是在分布式文件系統(tǒng)下的路徑,其默認(rèn)值為${HADOOP_LOG_DIR}/history。jobtracker的web UI上有歷史日志的web UI鏈接。
歷史文件在用戶指定的目錄hadoop.job.history.user.location也會(huì)記錄一份,這個(gè)配置的缺省值為作業(yè)的輸出目錄。這些文件被存放在指定路徑下的“_logs/history/”目錄中。因此,默認(rèn)情況下日志文件會(huì)在“mapred.output.dir/_logs/history/”下。如果將hadoop.job.history.user.location指定為值none,系統(tǒng)將不再記錄此日志。
用戶可使用以下命令在指定路徑下查看歷史日志匯總
$ bin/hadoop job -history output-dir
這條命令會(huì)顯示作業(yè)的細(xì)節(jié)信息,失敗和終止的任務(wù)細(xì)節(jié)。
關(guān)于作業(yè)的更多細(xì)節(jié),比如成功的任務(wù),以及對(duì)每個(gè)任務(wù)的所做的嘗試次數(shù)等可以用下面的命令查看
$ bin/hadoop job -history all output-dir
一但全部必要的配置完成,將這些文件分發(fā)到所有機(jī)器的HADOOP_CONF_DIR路徑下,通常是${HADOOP_HOME}/conf。
Hadoop的機(jī)架感知
HDFS和Map/Reduce的組件是能夠感知機(jī)架的。
NameNode和JobTracker通過(guò)調(diào)用管理員配置模塊中的APIresolve來(lái)獲取集群里每個(gè)slave的機(jī)架id。該API將slave的DNS名稱(chēng)(或者IP地址)轉(zhuǎn)換成機(jī)架id。使用哪個(gè)模塊是通過(guò)配置項(xiàng)topology.node.switch.mapping.impl來(lái)指定的。模塊的默認(rèn)實(shí)現(xiàn)會(huì)調(diào)用topology.script.file.name配置項(xiàng)指定的一個(gè)的腳本/命令。 如果topology.script.file.name未被設(shè)置,對(duì)于所有傳入的IP地址,模塊會(huì)返回/default-rack作為機(jī)架id。在Map/Reduce部分還有一個(gè)額外的配置項(xiàng)mapred.cache.task.levels,該參數(shù)決定cache的級(jí)數(shù)(在網(wǎng)絡(luò)拓?fù)渲校?。例如,如果默認(rèn)值是2,會(huì)建立兩級(jí)的cache- 一級(jí)針對(duì)主機(jī)(主機(jī) -> 任務(wù)的映射)另一級(jí)針對(duì)機(jī)架(機(jī)架 -> 任務(wù)的映射)。
啟動(dòng)Hadoop
啟動(dòng)Hadoop集群需要啟動(dòng)HDFS集群和Map/Reduce集群。
格式化一個(gè)新的分布式文件系統(tǒng):
$ bin/hadoop namenode -format
在分配的NameNode上,運(yùn)行下面的命令啟動(dòng)HDFS:
$ bin/start-dfs.sh
bin/start-dfs.sh腳本會(huì)參照NameNode上${HADOOP_CONF_DIR}/slaves文件的內(nèi)容,在所有列出的slave上啟動(dòng)DataNode守護(hù)進(jìn)程。
在分配的JobTracker上,運(yùn)行下面的命令啟動(dòng)Map/Reduce:
$ bin/start-mapred.sh
bin/start-mapred.sh腳本會(huì)參照J(rèn)obTracker上${HADOOP_CONF_DIR}/slaves文件的內(nèi)容,在所有列出的slave上啟動(dòng)TaskTracker守護(hù)進(jìn)程。
停止Hadoop
在分配的NameNode上,執(zhí)行下面的命令停止HDFS:
$ bin/stop-dfs.sh
bin/stop-dfs.sh腳本會(huì)參照NameNode上${HADOOP_CONF_DIR}/slaves文件的內(nèi)容,在所有列出的slave上停止DataNode守護(hù)進(jìn)程。
在分配的JobTracker上,運(yùn)行下面的命令停止Map/Reduce:
$ bin/stop-mapred.sh
bin/stop-mapred.sh腳本會(huì)參照J(rèn)obTracker上${HADOOP_CONF_DIR}/slaves文件的內(nèi)容,在所有列出的slave上停止TaskTracker守護(hù)進(jìn)程。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠(chéng)摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱(chēng) BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專(zhuān)注于從單 ...
2025-07-09year_month數(shù)據(jù)類(lèi)型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類(lèi)型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門(mén)控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書(shū)考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專(zhuān)業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開(kāi)啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03