hadoop的三種執行模式區別及配置詳解
基於hadoop進行開發時,有時候,會被hadoop的三種執行模式搞混,也會被hadoop叢集有哪些配置弄得暈頭轉向,因為看不同的文件有不同的配置方法。所以要先弄明白hadoop的執行模式,以及對應模式的有哪些必須配置,尤為重要,做到心中有數。
首先配置hadoop的元件,均可以利用XML檔案進行配置,四個配置檔案:core-site.xml檔案用於配置通用屬性(common),hdfs-site.xml檔案用於HDFS的屬性配置,mapred-site.xml檔案用於配置MapReduce屬性,yarn-site.xml用於YARN的配置。這些檔案都儲存在hadoop安裝目錄下的etc/hadoop子目錄中(當然實際配置時也可以將etc/hadoop目錄及其檔案複製到另外一個位置,這樣做的好處是將配置設定和安裝檔案隔離開。如果這樣做的話,需要在環境變數中將HADOOP_CONF_DIR設定成指向那個新目錄,或者在啟動守護程序時使用--config配置選項)
Hadoop的三種執行模式 :
1.獨立(本地)執行模式:無需任何守護程序,所有的程式都執行在同一個JVM上執行。在獨立模式下除錯MR程式非常高效方便。所以一般該模式主要是在學習或者開發階段除錯使用 。
2.偽分散式模式: Hadoop守護程序執行在本地機器上,模擬一個小規模的叢集,換句話說,可以配置一臺機器的Hadoop叢集,偽分散式是完全分散式的一個特例。
3.完全分散式模式:Hadoop守護程序執行在一個叢集上。
注意:所謂分散式要啟動守護程序 ,即:使用分散式hadoop時,要先啟動一些準備程式程序,然後才能使用比如start-dfs.sh start-yarn.sh。而本地模式不需要啟動這些守護程序
三種模式的叢集必須配置資訊:
下面詳細分析配置三種模式的“叢集”所需要的必須配置。可以配置完,體驗一把,就可以主觀地感受三種之間的區別。
元件名稱 | 屬性名稱 | 本地模式 | 偽分散式 | 完全分散式 |
Common | fs.defaultFs | file:///(預設) | hdfs://localhost/ | hdfs://nanmenode |
HDFS | dfs.replication | N/A | 1 | 3(預設) |
MapReduce | mapreduce.framework.name | local(預設) | yarn | yarn |
Yarn | yarn.resoucemanager.hostname yarn.nodemanager.auxservice | N/A N/A | localhost mapreduce_shuffle | resoucemanager maperduce_shuffle |
注意:在本地模式下,將使用本地檔案系統和本地MapReduce執行器。在分散式模式下,將啟動HDFS和YARN守護程序。