1

マッパーとリデューサーの両方でジョブを実行しようとしていますが、マッパーの実行が遅い..

同じ入力に対してレデューサーを無効にすると、マッパーは 3 分で終了しますが、マッパー - レデューサー ジョブの場合、30 分が経過してもマッパーは終了しません。

私はhadoop 1.0.3を使用しています..マップ出力の圧縮ありとなしの両方を試しました。Hadoop 0.20.203 の古いバージョンを削除し、1.0.3 用にすべてを最初から再インストールしました

また、Jobtracker ログには次の情報が記録されます。

2012-10-03 10:26:20,138 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 54311: readAndProcess threw exception java.lang.RuntimeException: readObject can't find class . Count of bytes read: 0
java.lang.RuntimeException: readObject can't find class
        at org.apache.hadoop.io.ObjectWritable.readObject(ObjectWritable.java:185)
        at org.apache.hadoop.ipc.RPC$Invocation.readFields(RPC.java:102)
        at org.apache.hadoop.ipc.Server$Connection.processData(Server.java:1303)
        at org.apache.hadoop.ipc.Server$Connection.processOneRpc(Server.java:1282)
        at org.apache.hadoop.ipc.Server$Connection.readAndProcess(Server.java:1182)
        at org.apache.hadoop.ipc.Server$Listener.doRead(Server.java:537)
        at org.apache.hadoop.ipc.Server$Listener$Reader.run(Server.java:344)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.ClassNotFoundException:
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:820)
        at org.apache.hadoop.io.ObjectWritable.readObject(ObjectWritable.java:183)

誰が何が間違っているのか教えてもらえますか

4

1 に答える 1

0

マッパーが 3 分で完了する場合。バッチ処理の性質により遅くはありません。はい、使用しているバージョンの mapreduce では、正しい no of reducer を使用していることを確認する必要があります。クラスターサイズが X の場合は、 X-1 としてリデューサーの数を使用してみてください。これが役立つかどうかを確認してください

于 2015-01-30T07:28:54.253 に答える