Apache spark 如何将特定于应用程序的配置传递给Spark workers?

Apache spark 如何将特定于应用程序的配置传递给Spark workers?,apache-spark,Apache Spark,我有一个Spark应用程序,它使用了许多工人。我希望能够轻松地向他们传递简单的配置信息(无需重新编译):例如使用算法A。如果这是一个本地应用程序,我只需要在环境变量中设置信息,然后读取它们。我尝试过使用spark env.sh做类似的事情,但是变量似乎没有正确传播 如何在workers中对代码进行简单的运行时配置 (PS我正在运行一个spark-ec2类型集群)您需要注意配置每个工作进程 从Spark文档: 您可以在每台机器上编辑/root/spark/conf/spark env.sh,以设置

我有一个Spark应用程序,它使用了许多工人。我希望能够轻松地向他们传递简单的配置信息(无需重新编译):例如
使用算法A
。如果这是一个本地应用程序,我只需要在环境变量中设置信息,然后读取它们。我尝试过使用
spark env.sh
做类似的事情,但是变量似乎没有正确传播

如何在workers中对代码进行简单的运行时配置


(PS我正在运行一个
spark-ec2
类型集群)

您需要注意配置每个工作进程

从Spark文档: 您可以在每台机器上编辑
/root/spark/conf/spark env.sh
,以设置spark配置选项,例如JVM选项。需要将此文件复制到每台计算机以反映更改

如果您使用AmazonEC2集群,那么有一个脚本可以在主服务器和所有工作服务器之间RSYNC一个目录

最简单的方法是使用我们提供的名为copy dir的脚本。首先在主机上编辑您的
spark env.sh
文件,然后运行
~/spark-ec2/copy dir/root/spark/conf
将其重新同步到所有工作人员