我正在观察一种行为,在从HDFS读取数据时,Spark作业会使执行程序掉落。以下是火花壳的配置。
spark-shell \
--executor-cores 5 \
--conf spark.shuffle.compress=true \
--executor-memory=4g \
--driver-memory=4g \
--num-executors 100
查询:spark.sql("select * from db.table_name").count
此特定查询将增加40,000个任务。在执行期间,正在运行的任务数从500开始,然后将没有正在运行的任务数 慢慢下降到〜0(我有足够的资源),然后突然上升到500(动态分配已关闭)。我试图了解这种现象的原因,并试图寻找避免这种情况的可能方法。仅当我尝试读取阶段时才会发生这种下降和峰值,所有中间阶段将并行运行而没有如此大的峰值。
我们很乐意提供任何缺少的信息。