env:jdk1.8 with spark 2.3.0& hadoop 2.8.0
查询:
select cast(uid as int) from HiveTable where partition=foo
这样的查询的物理计划应该像项目< ---- filter< ---- HiveTableScan(predicate = foo),一个非常简单的
和数据帧调用:
df.write.option("delimiter","\t").csv(HdfsPath)
分区文件夹包含很多lzo文件,文件大小基本相同所以我期望每个任务都需要一些时间,并且它会稳定顺利地进行。
但是到达终点时它变得越来越慢,看起来很像经典Data Skew
正在发生。我真的不知道发生了什么以及如何深入调查。
任何建议都表示赞赏。
答案 0 :(得分:0)
我是如何解决问题的:
使用较少的执行者然后运行正常。
conf导致问题:--num-executors 512
(群集的资源远远不够)
更改为128解决了问题。
仍然不知道原因,欢迎解释。