在将flow脚本转换为dagam之前,在bash中实现了flow脚本。在bash脚本中,我只是在运行时用
export HADOOP_CONF_DIR="/etc/hadoop/conf"
现在我也想在气流中做同样的事情,但还没有找到解决办法。我发现的一个解决方法是在任何方法或运算符之外使用os.environ[VAR_NAME]='some_text'
设置变量,但这意味着它们在加载脚本时就被导出,而不是在运行时。在
现在,当我试图在pythonooperator调用的函数中调用os.environ[VAR_NAME] = 'some_text'
时,它不起作用。我的代码是这样的
当我的SparkSubmito操作符被执行时,我得到了一个异常:
Exception in thread "main" java.lang.Exception: When running with master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.
与此相关的用例是我有SparkSubmitOperator
,在这里我向YARN提交作业,因此必须在环境中设置HADOOP_CONF_DIR
或{.bashrc
或任何其他配置中设置它们对我来说都是不可能的,这就是为什么我需要在运行时设置它们。在
最好我希望在执行SparkSubmitOperator
之前在操作符中设置它们,但是如果有可能将它们作为参数传递给SparkSubmitOperator
,那至少应该是这样。在
根据我在spark submit operator中看到的,您可以将环境变量作为字典传递给spark submit。在
你试过这个吗?在
相关问题 更多 >
编程相关推荐