apache-spark - 如何检查 Dataproc 上 pyspark 作业的每个执行程序/节点内存使用指标?

标签 apache-spark google-cloud-platform pyspark hadoop-yarn google-cloud-dataproc

我在 Google Cloud Dataproc 中运行 PySpark 作业,在一个集群中,其中一半节点可抢占,并且在作业输出(驱动程序输出)中看到几个错误,例如:

...spark.scheduler.TaskSetManager: Lost task 9696.0 in stage 0.0 ... Python worker exited unexpectedly (crashed)
   ...
Caused by java.io.EOFException
   ...

...YarnSchedulerBackend$YarnSchedulerEndpoint: Requesting driver to remove executor 177 for reason Container marked as failed: ... Exit status: -100. Diagnostics: Container released on a *lost* node

...spark.storage.BlockManagerMasterEndpoint: Error try to remove broadcast 3 from block manager BlockManagerId(...)
也许巧合的是,错误似乎主要来自可抢占节点。
我怀疑这些不透明的错误来自于内存不足的节点或执行程序,但 Dataproc 似乎没有公开任何与内存相关的粒度指标。
如何确定节点被视为丢失的原因?有没有一种方法可以检查每个节点或执行程序的内存使用情况,以验证这些错误是否是由高内存使用率引起的?如果 YARN 是杀死容器/确定节点丢失的那个,那么希望有一种方法可以反省为什么?

最佳答案

因为您正在使用 Preemptible VMs这是短暂的,并保证持续长达 24 小时。这意味着当 GCE 关闭抢占式虚拟机时,您会看到如下错误:

YarnSchedulerBackend$YarnSchedulerEndpoint: Requesting driver to remove executor 177 for reason Container marked as failed: ... Exit status: -100. Diagnostics: Container released on a lost node

关于apache-spark - 如何检查 Dataproc 上 pyspark 作业的每个执行程序/节点内存使用指标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62525537/

相关文章:

hadoop - Spark - java IOException :Failed to create local dir in/tmp/blockmgr*

google-app-engine - 自 2017 年 5 月起,如何在 App Engine Flexible 上运行 f1-micro 实例?

python - 添加 nltk.download ('words' 后 Google Cloud Run

python - 如何比较pyspark中的日期时间行对象

python - "normalize"将句子的数据帧转换为更大的单词数据帧

apache-spark - 如何在转换期间测试数据类型转换

apache-spark - PySpark + Cassandra : Getting distinct values of partition key

apache-spark - 如何在没有 Hadoop 的情况下让 Spark 在 Windows 10 上运行?

apache-spark - 如何打印出 Spark session 的 Spark 连接?

python - Firebase Firestore : get generated ID of document (Python)