2017-08-08 17 views
0

多数の入力ファイルを入力したときに初期化に非常に時間がかかるHadoopジョブがありますが、その理由がわかりません。ジョブは、使用されるファイルの数にかかわらず、数秒以内にすべてのノードとファイルを検索しますが、10,000ファイルが与えられた場合、分割の数を決定するのにかなりの時間(分)がかかります。別のユーザーとしてジョブを実行すると、ジョブはほぼすぐに分割数を決定します。Hadoop Streaming MapReduceファイルの検索が遅い

$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar -D 'mapreduce.job.name=...' 
packageJobJar: [] [/usr/lib/hadoop-mapreduce/hadoop-streaming-2.6.0-cdh5.11.0.jar] /tmp/streamjob4556879591438635545.jar tmpDir=null 
17/08/07 22:01:40 INFO client.RMProxy: Connecting to ResourceManager at jobtracker-dev.la.prod.factual.com/10.20.103.16:8032 
... 
17/08/07 22:01:41 INFO security.TokenCache: Got dt for hdfs://dev; Kind: HDFS_DELEGATION_TOKEN.... 
17/08/07 22:01:41 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library 
17/08/07 22:01:41 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev 674c65bbf0f779edc3e00a00c953b121f1988fe1] 
17/08/07 22:01:41 INFO mapred.FileInputFormat: Total input paths to process : 10000 
17/08/07 22:01:41 INFO net.NetworkTopology: Adding a new node: /cs3/211/... 
17/08/07 22:01:41 INFO net.NetworkTopology: Adding a new node: /cs3/210/... 
... 
<LONG PAUSE> 
... 
17/08/07 22:31:39 INFO mapreduce.JobSubmitter: number of splits:10000 

これは多くの情報ではありませんが、明らかに何が起こっているのでしょうか?

答えて

1

撮影に要する時間は非常に多くのパラメータによって異なります。開始するには、クラスタの容量と糸の構成を確認してください。 タスクとのAMコーディネートに時間がかかることを意味する10kの分割がある場合、hadoopは小さなファイル(大量のファイル)を処理する大きなファイル用に構築されていることを覚えておいてください。 あなたのhdfsブロックサイズと、どれくらい入れているかを確認してください。 分散モードであることを確認して、データノードとの接続が少ないパスワードを確立してください。 具体的には "ジョブを別のユーザーとして実行すると、ジョブはほぼすぐに分割数を決定します。"これはHADOOPの容量に関する問題ではありません。可能な場合は、クラスタを管理するのに十分な予算があれば、ambariを使用してください。

関連する問題