当文件大于hdfs块大小时,getting无法查找java异常

ruarlubt  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(270)

因此,当我想处理一个大于我的hdfs块大小(64mb)的文件时,出现以下异常:

2013-05-31 01:49:46,252 WARN org.apache.hadoop.mapred.Child: Error running child
java.io.IOException: Can't seek!
    at org.apache.hadoop.hdfs.HftpFileSystem$3.seek(HftpFileSystem.java:359)
    at org.apache.hadoop.fs.FSDataInputStream.seek(FSDataInputStream.java:37)
    at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.initialize(LineRecordReader.java:76)
    at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.initialize(MapTask.java:522)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
    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:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
    at org.apache.hadoop.mapred.Child.main(Child.java:249)

我运行的作业只有一个路径(一个文件)作为输入。有趣的是,我实际上试图将文件分成两个较小的部分,每个部分都小于块的大小,并且是这样工作的。。然后我连接了这些文件,并尝试了连接的文件,但它没有再次工作。
我想我有一个配置问题,但我不知道是什么。我在hadoop上使用hbase,hbase似乎没有任何问题。
我会很感激你对此有任何想法。提前谢谢!

vulvrdjw

vulvrdjw1#

如hdfs-2457和hdfs-2396所述,hftp方案不支持 seek 操作,因此此错误是预期的。hftp本质上是一种通过http访问文件系统的协议,我不知道您为什么要使用它,但是您应该改用hdfs,它肯定支持 seek 你不应该再犯这个错误了。

相关问题