Клеевое задание выполняется бесконечно без завершения выполнения кода - PullRequest
0 голосов
/ 02 июня 2019

У меня есть связующее задание, которое считывает данные из экземпляра RDS postgres (через каталог данных) и записывает в s3 в формате секционирования и паркета. Это отлично работает. Я добавил в конец этого кода сценария запуск сканера по пути s3, в который был записан файл, чтобы в каталоге данных были обновлены новые разделы. Но этот код никогда не запускается. Я добавил оператор записи сразу после строки, которая записывает динамический фрейм, и этот оператор записи никогда не выводится. Задание просто выполняется бесконечно, пока не истечет время или я не остановлю выполнение.

import ...

...
sc = SparkContext()
gluecontext = GlueContext(sc)

log4jLogger=sc._jvm.org.apache.log4j
log=log4jLogger.LogManager.getLogger(__name__)
log.warn("test of logger")

DyF = gluecontext.create_dynamic_frame_from_catalog(database='db-we-want', table_name='table-of-value')

create_paritions(DyF)

log.warn("about to write dynamic frame with data of interest")

gluecontext.write_dyanmic_frame_from_options(frame=DyF, connection_type='s3', connection_options={'path': 's3://some-bucket/some-prefix'}, format='parquet')

log.warn('Attempting to start crawler')

glue_client = boto3.client('glue', region_name='us-east-1')
glue_client.start_crawler(Name='some-crawler')

Я ожидаю, что сканер запустится и увидит операторы журнала после первой записи связующего контекста. Я вижу объекты в s3 для динамического фрейма связующего контекста, но оператор log сразу после этого не записывает. Сканер не запускается. В журналах нет ошибок, и задание продолжает выполняться бесконечно.

EDIT:

Мне удалось решить эту проблему. Проблема заключалась в том, что подсеть соединения RDS была общедоступной. Однако клеевые работы не имеют публичного IP. Им нужен доступ к шлюзу NAT. При переключении соединения на использование частной подсети со шлюзом NAT задание удалось успешно выполнить. Произошла ошибка из-за истечения времени ожидания при попытке подключения к склеенным ресурсам.

...