2017-04-16 93 views
1

我想了解如何將MR作業提交給基於YARN的Hadoop集羣。如何使用ResourceManager HA和Hortowork的HDP將MR作業提交給YARN羣集?

案例1:

對於其中只有一個ResourceManager中(即NO HA)的情況下,我們可以提出這樣的工作(我實際使用,我相信是正確的)。

hadoop jar word-count.jar com.example.driver.MainDriver -fs hdfs://master.hadoop.cluster:54310 -jt master.hadoop.cluster:8032 /first/dir/IP_from_hdfs.txt /result/dir 

可以看出,RM在端口8032和NN運行在54310和我指定的主機名becasue只有一個主人。

案例2:

現在,當有HA兩個NN和RM的情況下,我該如何提交作業?我無法理解這一點,因爲現在我們有兩個RM和NN(主動/備用),我知道有一個動物園管理員要跟蹤失敗。所以,從客戶的角度來看,如果要提交一份工作,我是否需要知道提交工作的確切NN和RM,還是有一些我們必須用來提交工作的邏輯命名?

任何人都可以幫我理解嗎?

回答

1

有或沒​​有HA時,提交作業的命令保持不變。

hadoop jar <jar> <mainClass> <inputpath> <outputpath> [args] 

使用-fs-jt是可選的,並且不使用,除非你想指定NamenodeJobTracker是從一個在配置不同。

如果fs.defaultFS屬性在core-site.xml和性質限定所述名稱服務dfs.nameservices)及其namenodes在客戶端的hdfs-site.xml正確配置,活動主將每當執行的客戶機操作選擇。

默認情況下,DFS客戶端使用此Java類來確定哪個NameNode當前處於活動狀態。

<property> 
    <name>dfs.client.failover.proxy.provider.<nameserviceID></name> 
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> 
</property> 
+0

非常感謝您的幫助,這是否意味着我們必須在客戶端配置Java類(根據上面的配置)?如果我們不這樣做,會不會有一些問題? – CuriousMind

+1

如果未提供,客戶端將無法聯繫到當前的活動NN。 – franklinsijo

相關問題