我已经使用Apache Airflow一段时间了,由于一个用例,我需要将SparkSubmitOperator重写为SSHOperator。我的气流安装在AWS EMR上,并且火花提交需要在同一EMR上进行。但是操作员失败,并显示- AirflowException:SSH操作员错误:没有可用的身份验证方法
我正在使用默认的 ssh_conn_id = ssh_default 并尝试以 ssh_hook 的方式传递,但似乎没有任何作用
dag文件
hook = SSHHook(ssh_conn_id='ssh_default')
spark_submit = """
spark-submit ....
"""
process = SSHOperator(
task_id='execute_pySpark',
ssh_hook=hook,
command=spark_submit,
do_xcom_push=True
)
气流连接
Conn Id: ssh_default
Conn Type: SSH
Host: localhost
任何见识都值得赞赏。预先谢谢你!
答案 0 :(得分:0)
根据https://airflow.readthedocs.io/en/1.10.2/howto/manage-connections.html?highlight=SSHOperator#ssh
中指定的详细信息配置SSH连接添加username
和password
(如果有)。除非您的Spark Master在本地主机上,否则Host
字段应包含您的远程VM的IP地址。