我有一个使用许多工作人员的Spark应用程序。我希望能够轻松地将简单的配置信息传递给它们(无需重新编译):例如USE_ALGO_A
。如果这是一个本地应用程序,我只需在环境变量中设置信息,然后阅读它们。我尝试使用spark-env.sh
做类似的事情,但变量似乎没有正确传播。
如何在工作人员中对代码进行简单的运行时配置?
(PS我正在运行spark-ec2
类型群集)
答案 0 :(得分:0)
您需要注意配置每个工作人员。
来自Spark文档:
您可以在每台计算机上编辑/root/spark/conf/spark-env.sh
以设置Spark配置选项,例如JVM选项。需要将此文件复制到每台计算机以反映更改。
如果您使用的是Amazon EC2群集,则会有一个脚本,RSYNC是主服务器和所有工作人员之间的目录。
最简单的方法是使用我们提供的名为copy-dir的脚本。首先编辑主文件上的spark-env.sh
文件,然后运行~/spark-ec2/copy-dir /root/spark/conf
以将其RSYNC给所有工作人员。