有人可以为气流python3建议替代HdfsSensor吗?

时间:2019-04-11 13:25:34

标签: python hdfs airflow

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

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

1 个答案:

答案 0 :(得分:0)

由于@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'
}