hadoop - 使用 Hadoop 读取 s3 时出现 java.lang.NullPointerException(Scalding)

标签 hadoop amazon-s3 nullpointerexception scalding

尝试使用 Scalding/Hadoop 读取 s3 时出现奇怪的 NPE。路径 100% 正确。

问这个问题是因为用谷歌搜索这个问题出乎意料的困难,而且每次我遇到这个错误时,我都会忘记我是如何解决它的。所以在 SO 上发帖,这样我就可以自己谷歌了。

Caused by: java.lang.NullPointerException
        at org.apache.hadoop.fs.s3native.NativeS3FileSystem.listStatus(NativeS3FileSystem.java:479)
        at org.apache.hadoop.fs.Globber.listStatus(Globber.java:69)
        at org.apache.hadoop.fs.Globber.glob(Globber.java:217)
        at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1623)
        at com.twitter.scalding.FileSource.pathIsGood(FileSource.scala:57)
        at com.twitter.scalding.FileSource$$anonfun$hdfsReadPathsAreGood$1.apply(FileSource.scala:89)
        at com.twitter.scalding.FileSource$$anonfun$hdfsReadPathsAreGood$1.apply(FileSource.scala:89)
        at scala.collection.LinearSeqOptimized$class.forall(LinearSeqOptimized.scala:70)
        at scala.collection.immutable.List.forall(List.scala:84)
        at com.twitter.scalding.FileSource.hdfsReadPathsAreGood(FileSource.scala:89)
        at com.twitter.scalding.FileSource.validateTaps(FileSource.scala:101)
        at com.twitter.scalding.Job$$anonfun$validateSources$1.apply(Job.scala:158)
        at com.twitter.scalding.Job$$anonfun$validateSources$1.apply(Job.scala:153)
        at scala.collection.Iterator$class.foreach(Iterator.scala:727)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
        at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
        at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
        at com.twitter.scalding.Job.validateSources(Job.scala:153)
        at com.twitter.scalding.Job.buildFlow(Job.scala:91)
        at com.twitter.scalding.Job.run(Job.scala:126)
        at com.twitter.scalding.Tool.start$1(Tool.scala:109)
        at com.twitter.scalding.Tool.run(Tool.scala:125)
        at com.twitter.scalding.Tool.run(Tool.scala:72)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at com.twitter.scalding.Tool$.main(Tool.scala:133)

最佳答案

在进行 glob 搜索时也会出现此错误。 jets3 必须进行调整,我猜是使用 max-keys 或超时选项。

关于hadoop - 使用 Hadoop 读取 s3 时出现 java.lang.NullPointerException(Scalding),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24434284/

相关文章:

sql - Hive:需要指定分区列,因为目标表已分区

sql - 从时间戳格式 "25/Nov/2016:15:48:01 +0000' 中检索月份

amazon-web-services - AWS S3跨区域复制删除操作行为的状态

javascript - 是否可以从浏览器在 amazon s3 上上传流?

java - 错误 "Attempt to invoke virtual method ' 双 java.lang.Double.doubleValue( )' on a null object reference"

java - 什么是NullPointerException,我该如何解决?

rest - HBase REST 返回 json 而不是 xml

amazon-web-services - S3 和 EMR 数据局部性

java - Findbugs java 中可能的空指针取消引用

apache - 创建分区 View 时 Hive 出错