首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Hadoop执行过程中找不到拆分类

在Hadoop执行过程中找不到拆分类
EN

Stack Overflow用户
提问于 2013-11-06 18:45:33
回答 1查看 377关注 0票数 0

我有个奇怪的问题。我有自己的文件系统实现,而不是默认的分布式文件系统。我已经在fs.default.name和impl中添加了我的文件系统。当hadoop执行启动(teragen程序)时,我可以看到,从job.xml、job.jar等文件到JobTracker的写入和读取都很好。但是,一旦在作业跟踪器中分配了映射任务,它就会给出一个例外,即找不到拆分类。我验证了所有类都存在于示例jar中。

此外,为了缩小问题范围,我仅通过更改fs.default.name,使用默认的分布式系统重新尝试了完全相同的设置。它工作得很完美!

命令

代码语言:javascript
复制
bin/hadoop jar hadoop-examples-1.2.1.jar teragen 100000 /user/hduser/terasort-input

最初,我觉得这是一个类路径问题,但是,如果相同的设置适用于默认的分布式系统,那么问题在哪里?我在文件系统中的实现如何影响到作业跟踪器和类路径?

我真的很感激你的帮助。

代码语言:javascript
复制
2013-11-06 12:30:35,018 INFO org.apache.hadoop.mapred.TaskInProgress: Error from attempt_201311061227_0001_m_000000_0: java.io.IOException: Split class PLLorg.apache.hadoop.examples.terasort.TeraGen$RangeInputFormat$RangeInputSplit not found
at org.apache.hadoop.mapred.MapTask.getSplitDetails(MapTask.java:381)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:406)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:366)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
at org.apache.hadoop.mapred.Child.main(Child.java:249)

Caused by: java.lang.ClassNotFoundException: PLLorg.apache.hadoop.examples.terasort.TeraGen$RangeInputFormat$RangeInputSplit
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:266)
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:810)
at org.apache.hadoop.mapred.MapTask.getSplitDetails(MapTask.java:379)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-06 18:52:27

请检查您的文件系统实现中的路径转换问题,如下所示:

  • workingDirectory
  • filestatus:当返回fileStatus时,fileStatus对象中包含一个路径,以后可以使用该路径
  • makeQulified
  • pathToFile

您还可能需要检查:

  • 是否您的文件系统实际上是一个共享文件系统,这意味着所有节点(TT、JT)都具有相同的命名空间。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19820204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档