【问题标题】:Airflow HDFS Sensor气流 HDFS 传感器
【发布时间】:2018-10-18 19:54:38
【问题描述】:

试图让 HDFSSensor 工作。我已经建立了 hdfs 连接并且文件在那里,但它一直在戳文件并且永远不会完成

寻找文件 hdfs://user/airflow/stamps/test/ds=2018-10-15/_SUCCESS

代码如下

hdfs_sense_open = HdfsSensor(
        task_id='hdfs_sense_open',
        filepath='hdfs://user/airflow/stamps/test/ds=2018-10-15/_SUCCESS',
        hdfs_conn_id='hdfs_leo',
        dag=dag)

实际上它可以在路径中没有文件名的情况下工作。我还想在创建hdfs连接时再补充一点,您需要使用hdfs端口号而不是webhdfs端口,即8020(如果是localhost,可能是9000)而不是像50070这样的webhdfs端口

hdfs_sense_open = HdfsSensor(
        task_id='hdfs_sense_open',
        filepath='/user/airflow/stamps/test/ds=2018-10-15/',
        hdfs_conn_id='hdfs_leo',
        dag=dag)

非常感谢你们两位试图帮助我

【问题讨论】:

  • 我以前没有使用过这个传感器,但我会尝试从filepath 中排除hdfs:// 并只使用filepath='/user/airflow...'。查看路径在传感器中传递到的snakebite.client.Client.ls,我认为它可能会弄乱检查。
  • 实际上我需要删除 /_SUCCESS 并且只提供包含该文件的文件夹的路径。如果我也能控制文件名,那就太好了

标签: airflow


【解决方案1】:

尝试使用不带协议的filepath 设置。喜欢:

hdfs_sense_open = HdfsSensor(
        task_id='hdfs_sense_open',
        filepath='/user/airflow/stamps/test/ds=2018-10-15/_SUCCESS',
        hdfs_conn_id='hdfs_leo',
        dag=dag)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多