Воздушный поток: ошибка: нераспознанные аргументы: - да - PullRequest
0 голосов
/ 14 июля 2020

Мне нравится перезапускать или запускать DAG из composer, и команда ниже - это то, что я использовал, но у меня есть некоторые исключения вроде этого

kubeconfig entry generated for europe-west1-leo-stage-bi-db7ea92f-gke.
Executing within the following Kubernetes cluster namespace: composer-1-7-7-airflow-1-10-1-db7ea92f
command terminated with exit code 2
[2020-07-14 12:44:34,472] {settings.py:176} INFO - setting.configure_orm(): Using pool settings. pool_size=5, pool_recycle=1800
[2020-07-14 12:44:35,624] {default_celery.py:80} WARNING - You have configured a result_backend of redis://airflow-redis-service.default.svc.cluster.local:6379/0, it is highly recommended to use an alternative result_backend (i.e. a database).
[2020-07-14 12:44:35,628] {__init__.py:51} INFO - Using executor CeleryExecutor
[2020-07-14 12:44:35,860] {app.py:51} WARNING - Using default Composer Environment Variables. Overrides have not been applied.
[2020-07-14 12:44:35,867] {configuration.py:516} INFO - Reading the config from /etc/airflow/airflow.cfg
[2020-07-14 12:44:35,895] {configuration.py:516} INFO - Reading the config from /etc/airflow/airflow.cfg
usage: airflow [-h]
               {backfill,list_tasks,clear,pause,unpause,trigger_dag,delete_dag,pool,variables,kerberos,render,run,initdb,list_dags,dag_state,task_failed_deps,task_state,serve_logs,test,webserver,resetdb,upgradedb,scheduler,worker,flower,version,connections,create_user}
               ...
airflow: error: unrecognized arguments: --yes

ERROR: (gcloud.composer.environments.run) kubectl returned non-zero status code.

Это моя команда, вторая line Я указал параметры, может ли кто-нибудь помочь с этим? Спасибо

 gcloud composer environments run leo-stage-bi     --location=europe-west1 backfill -- regulatory_spain_monthly  -s 20190701     -e 20190702 -t  "regulatory_spain_rud_monthly_materialization"  --reset_dagruns


gcloud composer environments run project-name     --location=europe-west1 backfill -- DAG name  -s start date     -e end date -t  task in the DAG --reset_dagruns

Ответы [ 2 ]

1 голос
/ 15 июля 2020

Я проверил функциональность подкоманды Airflow backfill в gcloud util из Google Cloud SDK 300.0.0 tools-set и завершил свои тестовые попытки, запустив действие backfill с той же ошибкой:

воздушный поток: ошибка: нераспознанные аргументы: - да

Вникнув в эту проблему и запустив --verbosity=debug для команды gcloud composer environments run, я понял причину этого лага:

gcloud composer environments run <ENVIRONMENT> --location=<LOCATION> --verbosity=debug backfill -- <DAG> -s <start_date> -e <end_date> -t "task_id" --reset_dagruns

DEBUG: Выполнение команды: ['/ usr / bin / kubectl', '--namespace', '', 'exe c', 'airflow-worker- *', ' --stdin ',' --tty ',' --container ',' airflow-worker ',' - ',' airflow ',' backfill ',' ',' -s ',' ',' -e ',' ',' -t ',' task_id ',' --reset_dagruns ',' - yes ']

Приведенный выше вывод отражает способ, каким gcloud отделяет команду строковые аргументы, отправляя их наследнику kubectl команды. Говоря это, я предполагаю, что - да аргумент по неизвестной причине был распространен и еще более неправильно позиционировал остальные параметры.

Я искал обходной путь. на моем пути составляю соответствующий kubectl командный вызов конкретному рабочему модулю Airflow, вручную отправляя параметры командной строки Airflow:

kubectl -it exec $(kubectl get po -l run=airflow-worker -o jsonpath='{.items[0].metadata.name}' \
    -n $(kubectl get ns| grep composer*| awk '{print $1}')) -n $(kubectl get ns| grep composer*| awk '{print $1}') \
    -c airflow-worker -- airflow backfill <DAG> -s <start_date> -e <end_date> -t "task_id" --reset_dagruns

К настоящему времени airflow backfill команда успешно выполняется без каких-либо ошибок.

0 голосов
/ 14 июля 2020

Для запуска ручного запуска вы можете использовать параметр trigger_dag:

gcloud composer environments run <COMPOSER_INSTANCE_NAME> --location <LOCATION> trigger_dag -- <DAG_NAME>
...