我有一个用 Java 编写的 mapreduce 作业。它使用类型安全配置进行配置。我的配置读取器类在运行时可以覆盖其变量。例如,如果我有一个名为 foo=bar
的配置,那么当我在运行时导出环境变量 X_foo=bar_prime
时,它会覆盖相应的配置。
所以它运行良好,但是当我在 Resourcemanager 上导出这些变量并提交我的作业时,mapper 和 reducer 容器无法识别覆盖的值,实际上这是之前预期的! 对此的写入方法是什么?
注意:我使用了 export HADOOP_CLIENT_OPTS="-Dyarn.app.mapreduce.am.env='X_foo=bar_prime' $HADOOP_CLIENT_OPTS"
,但我认为它效果不佳。
有什么想法吗?