webhdfs传感器-气流

webhdfs sensor-Airflow

我想使用传感器检查 hdfs 中文件的到达。 我使用了 hdfs 传感器,但我无法安装 snakebite,因为它需要 python2,我在 运行 python3 上。 作为替代方案,我正在使用 webhdfs 传感器。 当我尝试实施时,我遇到了以下错误

ERROR - b'<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>\n<title>Error 401 Authentication required</title>\n</head>\n<body><h2>HTTP ERROR 401</h2>\n<p>Problem accessing /webhdfs/v1/. Reason:\n<pre>    Authentication required</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>                                                

[2021-07-15 12:01:30,948] {taskinstance.py:1128} ERROR - Read operations failed on the namenodes below:xxxxx

你能告诉我如何使用这个传感器吗,因为我找不到太多关于如何使用它的信息。或者请建议任何 替代方法来检查 hdfs 中的文件到达。 预先感谢您的回复。

请查找以下代码:

source_data_sensor = WebHdfsSensor(
task_id='source_data_sensor',
filepath='filepath',
timeout=120,
webhdfs_conn_id='webhdfs_default',
poke_interval=10,
dag=dag,
env={
'JAVA_HOME': '/usr/bin/java'})

来自 official documentation:它需要 apache-airflow 版本 >=2.1.0 和 snakebite-py3。尝试安装 snakebite-py3 而不是 snakebite,或者只在 Airflow 2.1+

之上使用 pip install apache-airflow-providers-apache-hdfs