我正在尝试在spark中以独立模式使用动态分配,以允许多个用户同时运行作业。我在spark-defaults.conf文件中启用了动态分配和随机服务:
spark.shuffle.service.enabled true
spark.dynamicAllocation.enabled true
spark.dynamicAllocation.minExecutors 0
当我尝试同时运行两个pyspark shell时,执行程序失败并出现错误:
ERROR TaskSchedulerImpl: Lost executor 7 on XXXX:
Remote RPC client disassociated. Likely due to containers exceeding
thresholds, or network issues. Check driver logs for WARN messages.
有关为何可能发生此事的想法或更好地使用动态分配的建议?
非常感谢!
答案 0 :(得分:1)
spark动态分配用于在需要时减少或增加执行程序的数量,由执行程序的最大和最小数量定义。它与允许多个用户无关。在某些方面,当spark shell持有资源而不使用它时,它会很有用,它将释放这些容器。 请粘贴完整的错误日志,这可能是因为您请求的执行程序多于您在spark-defaults.conf中定义的执行程序