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 版本,您需要确保您使用的减速器数量正确。如果您的集群大小为 X 则尝试使用减速器的数量作为 X-1 。看看这是否有帮助

于 2015-01-30T07:28:54.253 回答