Spark 2.3.2 DAG创建使用单个CPU内核且速度很慢

时间:2019-01-23 20:40:41

标签: apache-spark

我要对50万至200万行之间的CSV数据源文件进行大量相当复杂的转换。我通过UI和htop看到spark仅使用1个CPU,并且在构建DAG时以100%运行。一旦击中动作,所有48个内核的使用率就会达到100%(按预期)。

我遇到的问题是DAG创建需要10分钟的时间,而其他47个内核处于空闲状态。这在本地模式(master = local [*])和AWS EMR(master = yarn,客户端模式)中均会发生。这是我的本地命令:

spark-submit --driver-memory=60g --driver-class-path <jar>  --class <class name> --conf spark.shuffle.partitions=48 --exclude-packages <exc. packages> --packages <packages> 

这是我的spark-defaults.conf

spark.sql.autoBroadcastJoinThreshold    -1
spark.driver.extraJavaOptions -XX:+UseG1GC
spark.executor.extraJavaOptions  -XX:+UseG1GC

如何使DAG创作利用多个核心?

在一个阶段中,我确实遇到了bug SPARK-13​​346,该bug导致由于大量血统而导致DAG堆积问题。我正在做大量检查点(并坚持执行)以删除沿袭-而且我的性能仍然很慢。

0 个答案:

没有答案