2017-04-16 4 views
1

MRジョブをHadoopクラスタYARNベースに送信する方法を理解しようとしています。ResourceManager HAを使用してMRジョブをYARNクラスタに提出する方法HortoworkのHDP?

ケース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は54310のポート8032とNN上で実行されていて、マスタが1つしか存在しbecasue私は、ホスト名を指定しています。

事例2:

は今、NNとRMの両方のためのHAがある場合、のためにどのように私は仕事を提出するのですか?今私は2つのRMとNN(アクティブ/スタンバイ)を持っているので、私はこれを理解することができません、そして私は失敗を追跡するために飼い犬桶があることを理解します。ジョブを提出しようとするクライアントの観点からは、ジョブを提出するための正確なNNとRMを知る必要がありますか、またはジョブを提出するために使用する論理名がいくつかありますか?

誰でも分かりますか?

答えて

1

HAの有無にかかわらず、ジョブを送信するコマンドは変わりません。 -fs-jtを使用して

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

はオプションで、構成内の1つの異なるNamenodeJobTrackerを指定する場合を除き、使用されていません。 core-site.xmlfs.defaultFS性及び特性はネームサービスdfs.nameservices)を定義し、そのnamenodesクライアントのhdfs-site.xmlに適切に構成されている場合、クライアント操作が行われるたびに

は、アクティブ・マスターが選択されます。

デフォルトでは、このJavaクラスはDFSクライアントが現在どの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

これを指定しないと、クライアントは現在のActive NNにアクセスできなくなります。 – franklinsijo

関連する問題