Невозможно создать дополнительную ссылку оператора на DatabricksRunNowOperator в Airflow - PullRequest
2 голосов
/ 14 февраля 2020

В настоящее время я пытаюсь создать дополнительную ссылку на DatabricksRunNowOperator в потоке воздуха, чтобы я мог быстро получить доступ к выполнению блоков данных без необходимости рыться в журналах. В качестве отправной точки я просто пытаюсь добавить ссылку на Google в меню экземпляра задачи. Я следовал процедуре, показанной в этом руководстве , создавая следующий код, помещенный в папку домашних плагинов airflow:

from airflow.plugins_manager import AirflowPlugin
from airflow.models.baseoperator import BaseOperatorLink
from airflow.contrib.operators.databricks_operator import DatabricksRunNowOperator

class DBLogLink(BaseOperatorLink):
    name = 'run_link'

    operators = [DatabricksRunNowOperator]

    def get_link(self, operator, dttm):
        return "https://www.google.com"

class AirflowExtraLinkPlugin(AirflowPlugin):
    name = "extra_link_plugin"
    operator_extra_links = [DBLogLink(), ]

Однако дополнительная ссылка не отображается, даже после перезапуска webserver et c:

airflow ui image

Вот код, который я использую для создания DAG:

from airflow import DAG
from airflow.contrib.operators.databricks_operator import DatabricksRunNowOperator
from datetime import datetime, timedelta

DATABRICKS_CONN_ID = '____'

args = {
    'owner': 'Airflow',
    'depends_on_past': False,
    'start_date': datetime(2020, 2, 13),
    'retries': 0
}

dag = DAG(
    dag_id = 'testing_notebook', 
    default_args = args, 
    schedule_interval = timedelta(days=1)
)

DatabricksRunNowOperator(
    task_id = 'mail_reader',
    dag = dag,
    databricks_conn_id = DATABRICKS_CONN_ID,
    polling_period_seconds=1,
    job_id = ____,
    notebook_params = {____}
)

Я чувствую как будто мне не хватает чего-то действительно базового c, но я просто не могу понять это.

Дополнительная информация

  • Версия воздушного потока 1.10.9
  • Работает на Ubuntu 18.04.3

1 Ответ

3 голосов
/ 17 февраля 2020

Я разобрался. Ваш веб-сервер должен работать как RBA C. Это означает настройку воздушного потока с аутентификацией и добавлением пользователей. RBA C можно включить, установив rbac = True в файле airflow.cfg .

...