首页 > 解决方案 > 有人可以建议气流 python3 的替代 HdfsSensor 吗?

问题描述

我正在尝试使用 python3 中的 HdfsSensor 监听 HDFS 中的更改以触发 Airflow 中的 ETL 管道。我收到以下错误,因为 python3 不支持蛇咬伤

此 HDFSHook 实现需要蛇咬,但 ' ImportError: 此 HDFSHook 实现需要蛇咬,但蛇咬与 Python 3 不兼容

标签: pythonhdfsairflow

解决方案


感谢@AyushGoyal 的建议,我使用WebHDFSSensor. 这个传感器看起来像HdfsSensor,你可以替换函数名称。请记住确保:

  • 您通过webhdfs_conn_id参数传递连接 ID(在 HdfsSensor 中,参数名称为hdfs_conn_id
  • 您应该尝试连接到名称节点的端口是 50700(不是 8020)

其余的都是一样的!例子:

from airflow.sensors.web_hdfs_sensor import WebHdfsSensor
file_sensor = WebHdfsSensor(
task_id='check_if_data_is_ready',
filepath="some_file_path",
webhdfs_conn_id='hdfs_conn_id',
poke_interval=10,
timeout=5,
dag=dag,
env={
    'JAVA_HOME': '/usr/java/latest'
}

)


推荐阅读