我要问一个有关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/
答案 0 :(得分:1)
您可以从此处探索两个选项。鉴于几乎没有提供有关代码,设置等方面的信息,我将自由地假设代码是用Scala编写的,并且您正在运行Spark 2或更高版本。
在scala代码中,您可以将Log4j语句放在spark执行期间进行日志记录。然后可以从群集中收集日志。
由于执行被卡住,因此您需要检查Spark Web UI并从“作业”>“阶段”>“任务”下钻取并尝试找出导致卡住的原因。
问的一些一般性问题是: 一种。有多少执行程序正在运行 b。失败后是否有重新创建的阶段/任务。 C。是否存在内存争用。 d。垃圾收集是否花了太长时间才能完成。 e。预计需要多少时间。 F。服务器是否有足够的CPU和内存
希望它会有所帮助。