celery - 使用 CeleryExecutor Airflow 的 Cloudera Kerberos 身份验证错误
问题描述
请帮忙,因为我有点无能为力..
我正在尝试升级我们的 Airflow 安装,包括从 localexecutor 到 celeryexecutor 的 Kerberos 身份验证。目前,我们仅从一台服务器运行气流安装。
由于 kerberos 身份验证错误,而 localexecutor 成功,完全相同的 sqoop 作业使用 celeryexecutor 失败:
Client cannot authenticate via:[TOKEN, KERBEROS]; Host Details : local host is: "lsrv****.linux.****/10.251.128.148"; destination host is: "lsrv***.linux.****":8020; , while invoking ClientNamenodeProtocolTranslatorPB.getFileInfo over lsrv****.linux.****/10.251.128.104:8020 after 1 failover attempts. Trying to failover after sleeping for 1377ms.'
kerberos 设置:
[kerberos]
ccache = /tmp/krb5cc_32606
# gets augmented with fqdn
principal = airflow
reinit_frequency = 3600
kinit_path = kinit
keytab = /var/lib/airhome/.certs/airflow.keytab
kerberos 或 celery 设置中是否需要更改任何内容以使 kerberos 与 celery 执行器结合使用?或者是否需要更改 Cloudera Hadoop 设置?(例如:hadoop.security.token.service.use_ip
?)
它是否与错误消息中提到的其他 IP 地址有关?
解决方案
您还需要airflow kerberos
在您运行的地方运行airflow worker
。它是 Airflow 中的 Kerberos 票证更新组件。
https://airflow.apache.org/docs/stable/security.html#kerberos
推荐阅读
- r - 为什么我在使用 cut() 时收到“无效的‘正确’争论”
- r - 如何在 XTS 中创建动态列
- admin - API-platform/Admin:如何使用自定义 src 渲染 ImageField?
- python - 如何在文件的元组列表中调用和写入元素?
- c++ - 如何在编译时标记默认参数的所有使用
- angular - 这个 Angular 异步管道的正确含义是什么?
- angular - 我正在使用 Angular,我想在此示例中使用 *ngIf else(自版本 4 起可用)
- c# - Telerik RadGridview (Winform) - 如何添加组合框
- corda - 我们在 Corda Enterprise 中有广播解决方案吗?
- c++ - 为什么我的变量会根据它的引用发生变化,而不是相反?