apache-spark - 如何知道 PySpark 应用程序的部署模式?

标签 apache-spark cluster-computing pyspark

我正在尝试解决内存不足的问题,我想知道是否需要更改 spark 主文件夹中默认配置文件 ( spark-defaults.conf ) 中的这些设置。或者,如果我可以在代码中设置它们。

我看到这个问题 PySpark: java.lang.OutofMemoryError: Java heap space它说这取决于我是否在 client 中运行模式。我在集群上运行 spark 并使用独立监控它。

但是,我如何确定我是否在 client 中运行 spark模式?

最佳答案

如果您正在运行交互式 shell,例如pyspark (CLI 或通过 IPython 笔记本),默认情况下您在 client 中运行模式。您可以轻松验证您 不能 运行 pysparkcluster 中的任何其他交互式 shell模式:

$ pyspark --master yarn --deploy-mode cluster
Python 2.7.11 (default, Mar 22 2016, 01:42:54)
[GCC Intel(R) C++ gcc 4.8 mode] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Error: Cluster deploy mode is not applicable to Spark shells.

$ spark-shell --master yarn --deploy-mode cluster
Error: Cluster deploy mode is not applicable to Spark shells.

检查 bin/pyspark 的内容文件也可能很有启发性 - 这是最后一行(这是实际的可执行文件):
$ pwd
/home/ctsats/spark-1.6.1-bin-hadoop2.6
$ cat bin/pyspark
[...]
exec "${SPARK_HOME}"/bin/spark-submit pyspark-shell-main --name "PySparkShell" "$@"

pyspark实际上是由 spark-submit 运行的脚本并命名为 PySparkShell ,通过它您可以在 Spark History Server UI 中找到它;并且由于它是这样运行的,它会根据其 spark-submit 中包含的任何参数(或默认值)进行处理。命令。

关于apache-spark - 如何知道 PySpark 应用程序的部署模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38384224/

相关文章:

scala - 如何使用 Spark 独立集群在工作节点上管理多个执行程序?

kubernetes - 下摆升级是否重新安装整个图表或仅更改 list

r - 无法在 linux 上安装 R "fpc"包

dictionary - pyspark : Change nested column datatype

windows - 如何让 Anaconda Pyspark Jupyter 在 Windows 下使用 S3

apache-spark - 在 Spark 的 MLlib 中使用的 TFIDF 生成期间出现内存不足异常

scala - 有效地为 spark 实现 takeByKey

python - 如何在 jupyter 笔记本中运行 Spark-Submit?

python - 获取 int() 参数必须是字符串或数字,而不是 'Column' - Apache Spark

scala - 在 Spark 数据帧中查找