python - 有人可以建议气流 python3 的替代 HdfsSensor 吗?
问题描述
我正在尝试使用 python3 中的 HdfsSensor 监听 HDFS 中的更改以触发 Airflow 中的 ETL 管道。我收到以下错误,因为 python3 不支持蛇咬伤
此 HDFSHook 实现需要蛇咬,但 ' ImportError: 此 HDFSHook 实现需要蛇咬,但蛇咬与 Python 3 不兼容
解决方案
感谢@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'
}
)
推荐阅读
- python - 是否有一种“pythonic”方式来调整函数的定义?
- php - PHP Elasticsearch 7.9.2 字符串索引超出范围:0
- django - UpdateView 从一开始就可以在没有对象的情况下工作吗?
- qt - 托管更新存储库。Qt 安装程序框架重新生成
- php - WooCommerce 中特定产品 ID 的批量折扣
- javascript - 转换后 React Router 滚动页面到顶部
- google-cloud-platform - 带有身份验证 yaml 配置文件部署错误的 Google 云 API 网关
- ssl - 如何从 *.cer 文件中获取 *.crt 和 *.key?
- javascript - 等待 Promises 完成,然后再将它们推送到数组中(Javascript Promises)
- javascript - 无论滚动如何,如何将位置绝对 div 转换到另一个顶部