【发布时间】:2012-10-03 15:03:50
【问题描述】:
我正在尝试使用映射器和减速器运行作业,但映射器运行缓慢..
如果对于相同的输入我禁用减速器,映射器在 3 分钟内完成 而对于 mapper-reducer 作业,即使在 30 分钟结束时,Mapper 也没有完成。
我正在使用 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)
谁能告诉我哪里出了问题
【问题讨论】:
-
您是否配置了组合器(我认为您的映射器在使用减速器运行时无法完成的一个原因)。
-
你能分享你的工作配置/生成的job.xml(也许通过pastebin?)
-
这个问题你解决了吗?
-
你能在这里粘贴你的工作配置吗?如果可能的话,reducer 代码也可以。