Sq oop Ошибка импорта при извлечении данных из psql - PullRequest
0 голосов
/ 16 июня 2020

Я выполняю задание sq oop в облаке Google для импорта данных из базы данных psql после применения объединений в 3 таблицы. Однако задание sq oop терпит неудачу из-за указанной ниже ошибки, хотя оно импортирует данные из таблицы в течение 15 минут, но терпит неудачу после выполнения в течение 2 часов. Я могу легко извлекать другие таблицы.

Размер данных: 13 ГБ

Запрос: gcloud compute s sh $ INSTANCE_NAME --project = $ PROJECT_ID --service-account = $ ACCOUNT --command = "" "$ SQOOP_HOME / bin / sq oop -import -D mapreduce.output.basename = '$ TABLE_EXPORT' --connect jdb c: $ JDB C: // $ HOST_NAME : $ PORT / $ DATABASE --username $ USERNAME --password '$ PASSWORD' --target-dir $ BUCKET_STORAGE -m $ NUM_WORKERS --split-by $ SPLIT_BY --query '$ QUERY \ $ CONDITIONS' --map- column- java $ MAPPING_COLUMNS --fields-terminated-by '|' --null-string '' "" "--zone = $ ZONE 2> & 1

Ошибка:

20/06/12 22:14:36 ​​INFO mapreduce.Job: map 0 % уменьшить 0%

20/06/12 22:14:49 INFO mapreduce.Job: map 50% reduce 0%

20/06/12 22:14:50 INFO mapreduce. Задание: карта 75% уменьшить 0%

packet_write_wait: подключение к порту XX.XX.XXX.XXX XX: сломанный канал

ОШИБКА: (gcloud.compute.s sh) [/ usr / bin / ssh] завершился с кодом возврата [255].

Команда завершена с кодом возврата 1

1 Ответ

2 голосов
/ 18 июня 2020

Ошибка packet_write_wait: Connection to XX.XX.XXX.XXX port XX: Broken pipe обычно указывает на то, что соединение было разорвано, потому что оно какое-то время простаивало, что имеет смысл, учитывая, что ваша команда не работает через 2 часа.

Чтобы исправить это, это было рекомендуется в другом сообщении стека для поддержания соединения путем настройки ServerAliveInternal и ServerAliveCountMax , и я рекомендую вам прочитать, для чего они используются.

По сути, ServerAliveInternal устанавливает значение времени, при достижении которого s sh отправляет сообщение для запроса сообщения с сервера, в то время как ServerAliveCountMax устанавливает количество сообщений ServerAliveInternal, которые могут быть отправлены без получения ответа. обратно с сервера перед завершением соединения.

Вам нужно будет настроить это в файле ~ / .ssh / config вашего клиента, и вы можете проверить этот пост в стеке для справки или этот поток с той же проблемой .

...