可视化数据块上的气流DAG

时间:2019-12-22 00:10:08

标签: python azure airflow databricks azure-databricks

我想在数据块上运行气流DAG。

我已经在数据砖上安装了apache-airflow 1.9.0(python3软件包)。

在databricks笔记本中,我使用了:

  %sh
  airflow list_dags

我知道了

 -------------------------------------------------------------------
 DAGS
 -------------------------------------------------------------------
 example_bash_operator
 example_branch_dop_operator_v3
 example_trigger_target_dag
 example_xcom
 latest_only
 latest_only_with_trigger
 test_utils
 tutorial

我想将以上DAG可视化为图形视图。

我可以通过在本地计算机上安装气流docker映像,然后访问localhost:8080来做到这一点。

但是,我无法找到如何在数据块上执行此操作。

谢谢

更新 我已经奔跑

  %sh
  airflow webserver -p 8080

我试图通过运行来访问localhost:8080

  %sh
  curl localhost:8080

在databricks笔记本上。

我知道了

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  
 Current
                             Dload  Upload   Total   Spent    Left  
 Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  100   221  100   221    0     0  23440      0 --:--:-- --:--:-- --:--:-- 24555
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  <title>Redirecting...</title>
  <h1>Redirecting...</h1>
  <p>You should be redirected automatically to target URL: <a href="/admin/">/admin/</a>.  If not click the link.

但是,它们在笔记本的输出中,并且没有可点击的链接。 气流安装在databricks群集上,而不在我的本地计算机上。 如果我在本地计算机上运行localhost:8080,则无法访问它。

谢谢

2 个答案:

答案 0 :(得分:1)

  1. 关于使用curl检索气流网络服务器提供的信息的更新,可以使用下面的代码(基本上,您需要在admin目录中获取url)

    %sh curl本地主机:8080 / admin /

尽管如此,您将无法像在本地计算机上那样弹出任何气流UI页面(curl只会在databricks控制台中以纯文本形式显示输出)。

  1. Databricks中的集群主要是临时资源(在这种情况下,它们仅被视为“处理工具”,可以随时启动,停止,重新启动和终止,而不会影响存储的数据),因此它们由于网络服务器进程,预计不能一直运行。另外,Databricks提供了有关群集的“摘要”,因为不希望它直接访问Databricks群集的节点(即:每个节点的特定IP)。您最终可以在节点上启用SSH(如此处说明:https://docs.databricks.com/clusters/configure.html#ssh-access-to-clusters),然后打开一个节点到Internet,以便从URL UI进行访问(如果使用,则应使用服务器IP)。但是,实际上,除非Databricks平台为特定服务(例如MLFlow,Delta)提供UI,否则不建议将这些IP打开到Internet(由于可能的安全漏洞)。

  2. 在具有Airflow的Databricks集成中,主要思想是您有一个外部airflow主节点(您在其中运行Web服务器进程),从该节点连接到Databricks集群以执行作业(通过内部执行Databricks REST Api的DatabricksSubmitRunOperator)。如该链接所述,先前由@ CHEEKATLAPRADEEP-MSFT发布:https://docs.databricks.com/dev-tools/data-pipelines.html
    实际上,目前尚不希望(直到现在)从Databricks群集中运行并保持气流Web服务器进程运行(这将消耗资源)。因此,不介意访问Databricks内部的Web服务器。重要的是,应使用airflowOperators将作业运行到Databrick中。

希望这有助于回答您的问题

答案 1 :(得分:0)

您可以在Airflow Web UI中可视化DAG。运行airflow webserver并连接到localhost:8080。单击任何example_databricks_operator以查看DAG的许多可视化。

这里是一个例子:

enter image description here

参考: Integrating Apache Airflow with Databricks

希望这会有所帮助。如果您还有其他疑问,请告诉我们。


请在有助于您的帖子上单击“标记为答案”,然后点击“赞”,这可能会对其他社区成员有所帮助。