Spark 在 yarn 集群模式下提交截断参数
Spark submit truncates arguments in yarn cluster mode
我 运行 在集群部署模式下使用以下命令在 yarn 集群上运行 spark 应用程序
spark-submit --conf spark.executor.memory=24g --conf spark.master=yarn --conf spark.submit.deployMode=cluster --conf spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8 --conf spark.files=file:///opt/configurations/app.conf --class com.example.HelloWorld --queue sample_q file:///opt/jars/example.jar '{"sample":{}}'
此命令没有将整个参数传递给 HelloWorld class。
传递的主要方法参数:{"sample":{
预期的主要方法参数:{"sample":{}}
相同的命令 运行 与客户端部署模式
正确
spark-submit --conf spark.executor.memory=24g --conf spark.master=yarn --conf spark.submit.deployMode=client --conf spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8 --conf spark.files=file:///opt/configurations/app.conf --class com.example.HelloWorld --queue sample_q file:///opt/jars/example.jar '{"sample":{}}'
检查 yarn worker 节点中的 launch_container.sh
脚本后发现该命令中也有截断的字符串 (--arg '{\"sample\":{'
)
星火版本:2.3
Hadoop 版本:2.7.3
Yarn 将 {{
和 }}
视为参数扩展字符,因此任何出现都被视为环境变量并替换为相应的值。由于没有环境变量。
当驱动程序在 yarn 集群中运行时,这会导致集群部署模式出现问题。
我 运行 在集群部署模式下使用以下命令在 yarn 集群上运行 spark 应用程序
spark-submit --conf spark.executor.memory=24g --conf spark.master=yarn --conf spark.submit.deployMode=cluster --conf spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8 --conf spark.files=file:///opt/configurations/app.conf --class com.example.HelloWorld --queue sample_q file:///opt/jars/example.jar '{"sample":{}}'
此命令没有将整个参数传递给 HelloWorld class。
传递的主要方法参数:{"sample":{
预期的主要方法参数:{"sample":{}}
相同的命令 运行 与客户端部署模式
正确spark-submit --conf spark.executor.memory=24g --conf spark.master=yarn --conf spark.submit.deployMode=client --conf spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8 --conf spark.files=file:///opt/configurations/app.conf --class com.example.HelloWorld --queue sample_q file:///opt/jars/example.jar '{"sample":{}}'
检查 yarn worker 节点中的 launch_container.sh
脚本后发现该命令中也有截断的字符串 (--arg '{\"sample\":{'
)
星火版本:2.3
Hadoop 版本:2.7.3
Yarn 将 {{
和 }}
视为参数扩展字符,因此任何出现都被视为环境变量并替换为相应的值。由于没有环境变量。
当驱动程序在 yarn 集群中运行时,这会导致集群部署模式出现问题。