停在特定行时如何调试Apache Spark?

时间:2018-11-05 08:18:44

标签: apache-spark

我要问一个有关Apache Spark的问题。如下图所示,它卡在了某个点上。

18/11/05 17:03:50 INFO storage.BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.3.33:53082 (size: 3.4 MB, free: 634.0 MB)
18/11/05 17:03:50 INFO storage.BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.3.36:46005 (size: 3.4 MB, free: 634.0 MB)
18/11/05 17:03:50 INFO storage.BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.3.36:41989 (size: 3.4 MB, free: 634.0 MB)
18/11/05 17:03:50 INFO storage.BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.3.35:43500 (size: 3.4 MB, free: 634.0 MB)
18/11/05 17:03:50 INFO storage.BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.3.35:47872 (size: 3.4 MB, free: 406.7 MB)
18/11/05 17:03:50 INFO storage.BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.3.35:34693 (size: 3.4 MB, free: 634.0 MB)
18/11/05 17:03:50 INFO storage.BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.3.36:38656 (size: 3.4 MB, free: 634.0 MB)
18/11/05 17:03:50 INFO storage.BlockManagerInfo: Added broadcast_8_piece0 in memory on 192.168.3.35:37369 (size: 3.4 MB, free: 634.0 MB)

即使时间允许,它也不会继续进行下一步。 当我提供小的数据集时,过程进行顺利。但是,当给出大型数据集时,它总是停留在上述位置。我认为这可能是内存问题,但我不确定具体原因。在这种情况下,如何深入研究或调查进度太慢的原因?

我附上了火花作业脚本,以帮助您了解情况。

spark-submit \
        --class com.bistel.test.IMTestDataSet \
        --master spark://spark.dso.spkm1:7077 \
        --driver-cores 2 \
        --driver-memory 4g \
        --executor-memory 2500m \
        --num-executors 8 \
        --executor-cores 1 \
        /home/jumbo/user/sclee/dataset/jar/dataset.debug.1.jar\
        /user/sclee/dataset/parquet/cause/500000 /user/sclee/dataset/effect/

1 个答案:

答案 0 :(得分:1)

您可以从此处探索两个选项。鉴于几乎没有提供有关代码,设置等方面的信息,我将自由地假设代码是用Scala编写的,并且您正在运行Spark 2或更高版本。

在scala代码中,您可以将Log4j语句放在spark执行期间进行日志记录。然后可以从群集中收集日志。

由于执行被卡住,因此您需要检查Spark Web UI并从“作业”>“阶段”>“任务”下钻取并尝试找出导致卡住的原因。

问的一些一般性问题是: 一种。有多少执行程序正在运行 b。失败后是否有重新创建的阶段/任务。 C。是否存在内存争用。 d。垃圾收集是否花了太长时间才能完成。 e。预计需要多少时间。 F。服务器是否有足够的CPU和内存

希望它会有所帮助。