我们有一些输入目录,用于在Spark SQL中加载文件和进程。
当然,这些目录在本地计算机上与测试与生产不同。
参数化这些的最佳方法是什么,
这样我们就可以构建,运行测试
并使用sbt部署而无需
a)手动更改大部分配置设置,
b)让开发人员使用他们自己的配置设置,
c)构建目标不同的部署?
答案 0 :(得分:3)
您可以从众多选项中进行选择:
当然还有其他选项(例如LDAP),但我选择属性:不可变配置值通常就足够了,它可能不会引入新的依赖关系,并且很容易从命令行管理和/或sbt任务。
答案 1 :(得分:0)
如果您不想拥有自己的Spark应用程序只会读取的配置或设置包,那么您可以让应用程序在提交spark应用程序时将文件路径作为参数。
例如:
./bin/spark-submit \
--class org.YourApp \
--master yarn-cluster \ # can also be `yarn-client` for client mode
--executor-memory 20G \
--num-executors 50 \
/path/to/yourApp.jar \
/path/to/directory
如果您使用Oozie,则可以根据需要更改XML中的path参数。