Я пытаюсь использовать Airflow HdfsSensor в моей DAG для поиска _SUCCESS.
DAG:
hdfs_sense_open = HdfsSensor(
task_id='hdfs_sensor_check',
filepath='/user/test/_SUCCESS',
dag=dag)
В моем соединении я использовал hdfs_default в качестве адреса namenode с портом 8020.
Изменен airflow.cfg под тегом kerberos,
ccache = /tmp/krb5cc_736789_VU54Jn
principal = test
reinit_frequency = 3600
keytab = /home/test/test.keytab
под ядром. Я включил security = kerberos .
test - мой идентификатор пользователя связан с LDAP и имеет доступ к кластеру Hadoop для чтения, записи, выполнения.
Я обновил заявку, выдав airflow kerberos
Когда я пытаюсь запустить DAG, он не может подключиться к Hdfs с ошибкой ниже:
[2018-12-10 15:43:26,934] {logging_mixin.py:95} INFO - [2018-12-10 15:43:26,934] {channel.py:83} DEBUG - RpcResponseHeaderProto:
[92mcallId: 4294967263
status: FATAL
serverIpcVersionNum: 9
exceptionClassName: "javax.security.sasl.SaslException"
errorMsg: "Client mechanism is malformed"
errorDetail: FATAL_UNAUTHORIZED
clientId: ""
retryCount: -1
[0m
[2018-12-10 15:43:26,934] {hdfs_sensor.py:116} DEBUG - Caught an exception !: (<class 'snakebite.errors.RequestError'>, RequestError(u'javax.security.sasl.SaslException\nClient mechanism is malformed',), <traceback object at 0x7f714f940d88>)
[2018-12-10 15:43:31,773] {logging_mixin.py:95} INFO - [2018-12-10 15:43:31,772] {jobs.py:189} DEBUG - [heartbeat]
Но из командной строки, используя snakebite, я могу открыть файл (snakeite -D ls).Может ли кто-нибудь помочь мне в чем проблемы.