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