Как запустить скрипт оболочки в кластере Google DataProc с помощью Airflow DataprocOperator - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь запустить сценарий оболочки в кластере Dataproc после настройки кластера.Я застрял или не уверен, какие параметры необходимо передать оператору для запуска файла .sh после запуска кластера.

Пример кода воздушного потока для создания кластера:

create_cluster = DataprocClusterCreateOperator(
    task_id='create_dataproc_cluster',
    cluster_name=DAG_CONFIG['DATAPROC']['cluster_name'],
    project_id=DAG_CONFIG['PROJECT_ID'],
    num_workers=DAG_CONFIG['DATAPROC']['num_workers'],
    zone=DAG_CONFIG['DATAPROC']['zone'],
    subnetwork_uri=DAG_CONFIG['DATAPROC']['subnetwork_uri'],
    master_machine_type='n1-standard-1',
    master_disk_type='pd-standard',
    master_disk_size=50,
    worker_machine_type='n1-standard-1',
    worker_disk_type='pd-standard',
    worker_disk_size=50,
    auto_delete_ttl=DAG_CONFIG['DATAPROC']['auto_delete_ttl'],
    storage_bucket=DAG_CONFIG['GCS_STAGING']['bucket_name'],
    dag=DAG_ID)

Здесь я должен отправить сценарий оболочки через DataprocHadoopOperator или любой другой подходящий оператор.

Shell_Task = DataProcHadoopOperator(
    task_id='shell_Submit',
    main_jar='???',
    project_id='xxx',
    arguments= [??],
    job_name='{{task.task_id}}_{{ds_nodash}}',
    cluster_name=DAG_CONFIG['DATAPROC']['cluster_name'],
    gcp_conn_id='google_cloud_default',
    region=DAG_CONFIG['DATAPROC']['zone'],
    dag=DAG_ID)

Любая помощь будет принята.

1 Ответ

0 голосов
/ 16 марта 2019

Для запуска сценария оболочки на каждой виртуальной машине Dataproc во время создания кластера необходимо использовать Действия инициализации Dataproc .

Вы можете указать их с помощью DataprocClusterCreateOperator :

DataprocClusterCreateOperator(
    # ...
    init_actions_uris = ['gs://<BUCKET>/path/to/init/action.sh'],
    # ...
)
...