Как установить учетную запись службы gcp по умолчанию для облачного композитора - PullRequest
1 голос
/ 20 июня 2019

Мне нужно запустить некоторые файлы Python (.py) в composer, используя оператор bash. Эти файлы присутствуют в вычислительном движке, но я не могу связаться с вычислительным движком через composer. Я думаю, что мне нужно добавить переменную подключения для общения. Может ли кто-нибудь помочь, как решить эту проблему.

def checkfile():
    file_path = '/root/sample-pyspark.py'

    if os.path.exists(file_path):
        print("File present")
        return True
    else:
        print("File not present")
        return False
with DAG('Demo_spark_job',
     default_args=default_args,
     schedule_interval='0 * * * *',
     ) as dag:

    print_hello = BashOperator(task_id='print_hello',
                           bash_command='echo "hello"')
    check_file = PythonOperator(task_id='check_file',
                             python_callable=checkfile)
    sample_spark_job = BashOperator(task_id='run_spark_job',
                     bash_command='sudo python /root/sample-pyspark.py')

1 Ответ

0 голосов
/ 26 июня 2019

Чтобы файлы (например, скрипты Python) отображались на ваших сотрудниках Cloud Composer Airflow, поместите их в корзину GCS, связанную с вашей средой. Например, если вы поместили файл в gs://my-composer-bucket/data/sample-pyspark.py (то есть в каталог данных), то вы можете получить к нему доступ по его смонтированному пути:

sample_spark_job = BashOperator(task_id='run_spark_job',
                 bash_command='sudo python /home/airflow/gcs/data/sample-pyspark.py')

Подробнее о сопоставленных каталогах Composer можно прочитать на общедоступной странице документации .


Если я неверно истолковал ваш вопрос выше, и вы действительно хотите запустить команду Bash для другого экземпляра GCE, то вам следует использовать SSH оператор .

...