Apache Atlas 和 Airflow 集成

Posted

技术标签:

【中文标题】Apache Atlas 和 Airflow 集成【英文标题】:Apache Atlas and Airflow Integration 【发布时间】:2021-02-02 20:59:00 【问题描述】:

我正在尝试将我运行的 Apache Atlas 实例与 Apache Airflow 集成。在airflow.cfg 中设置连接后,我尝试从Airflow 调度程序运行DAG。我在日志中收到以下错误。

[2021-02-02 20:50:47,958] connectionpool.py:752 WARNING - Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f464b856950>: Failed to establish a new connection: [Errno 111] Connection refused')': /api/atlas/v2/types/typedefs

[2021-02-02 20:50:47,960] taskinstance.py:1150 ERROR - HTTPConnectionPool(host='localhost', port=21000): Max retries exceeded with url: /api/atlas/v2/types/typedefs (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f464b8650d0>: Failed to establish a new connection: [Errno 111] Connection refused'))

我的airflow.cfg配置如下:

[lineage]
backend = airflow.lineage.backend.atlas.AtlasBackend

[atlas]
username = <username>
password = <password>
host = localhost
port = 21000

我也尝试将主机更改为 http://localhost。我不确定在 Atlas 中的何处进行调查以确定连接被拒绝的原因。

【问题讨论】:

【参考方案1】:

Connection Refused 表示服务未在配置的端口上侦听错误的主机名

尝试将localhost替换为fqdn

正确配置它的一个好方法是访问 atlas ui,只需将主机名从 url 放入 config。

【讨论】:

【参考方案2】:

我能够通过在启动 atlas 的 docker 容器时添加 --hostname 标志来解决问题。然后我使用我提供的主机名作为airflow.cfg 中的主机

【讨论】:

以上是关于Apache Atlas 和 Airflow 集成的主要内容,如果未能解决你的问题,请参考以下文章

Atlas|开始认识Apache Atlas

airflow集成EMR使用

Atlas集成外部组件—集成HiveHBaseKafka

Apache Atlas使用测评

Atlas部署并集成HIVE

Atlas部署(待完成)