Spark 2.1.1 - 无法从aws s3读取JSON文件

时间:2017-06-18 12:19:13

标签: scala amazon-web-services apache-spark amazon-s3

My Spark(v2.1.1)ETL应用程序(const_debug unsigned int sysctl_sched_nr_migrate = 32; )从AWS S3存储桶读取(仅使用一个JSON文件进行测试),进行一些转换,并将其加载回另一个AWS S3存储桶。问题是......它正在everything runs on my laptop读取一个JSON文件,该文件是175行,带有一个JSON记录/行!

这是日志:

infinite loop

这种模式不断重复......我终于 17/06/18 08:09:05 INFO S3AFileSystem: Opening 's3a://minitest/481dba58a88d43ca67c2e4cc4933d7e6.json' for reading 17/06/18 08:09:05 INFO S3AFileSystem: Getting path status for s3a://minitest/481dba58a88d43ca67c2e4cc4933d7e6.json (481dba58a88d43ca67c2e4cc4933d7e6.json) 17/06/18 08:09:05 INFO S3AFileSystem: Reopening 481dba58a88d43ca67c2e4cc4933d7e6.json to seek to new offset 918 17/06/18 08:09:05 INFO S3AFileSystem: Actually opening file 481dba58a88d43ca67c2e4cc4933d7e6.json at pos 918 17/06/18 08:09:05 INFO Executor: Finished task 915.0 in stage 0.0 (TID 915). 1286 bytes result sent to driver 17/06/18 08:09:05 INFO TaskSetManager: Starting task 920.0 in stage 0.0 (TID 920, localhost, executor driver, partition 920, PROCESS_LOCAL, 6100 bytes) 17/06/18 08:09:05 INFO Executor: Running task 920.0 in stage 0.0 (TID 920) 17/06/18 08:09:05 INFO TaskSetManager: Finished task 915.0 in stage 0.0 (TID 915) in 125 ms on localhost (executor driver) (917/235798) 17/06/18 08:09:05 INFO HadoopRDD: Input split: s3a://minitest/481dba58a88d43ca67c2e4cc4933d7e6.json:920+1 了!

一个观察......当我打开Spark GUI时,它说它有235,798个任务!不知道为什么要运行这么多任务!

我使用部署在本地计算机上的JSON文件对此进行了测试,并在不到一分钟的时间内完成!问题是......发生了什么?我在运行之前设置了AWS凭据,因此它不是身份验证问题。有任何想法吗?谢谢!

更新: Spark GUI说235,798个任务,它们匹配JSON文件中的字符数!但为什么它逐字逐句阅读呢?它的方法是什么?

BTW,这是我从AWS S3读取JSON文件的方式:

ctrl-z

1 个答案:

答案 0 :(得分:1)

这是S3A客户端和Hadoop 2.6的错误(HADOOP-11584);你需要升级到Hadoop 2.7二进制文件(最好)或使用s3n://直到你做