Задание Sqoop для передачи данных из Netezza в HDFS

Я написал задание sqoop для импорта данных из таблицы в Netezza в HDFS. Задание успешно создано, а также при выполнении запускает задание «Сокращение карты». Задание выполняется до тех пор, пока карта 100% не уменьшится на 0% и застревает. Задание никогда не завершается, и данные вообще не передаются. Ошибок или исключений не наблюдается.

У меня есть несколько аналогичных работ для других таблиц той же базы данных. Они работают правильно и передают данные. Что могло быть возможной причиной такого поведения.

Ниже приведена конфигурация задания sqoop, заданная в файле параметров.

--direct --connect jdbc: netezza: // url / имя_базы_данных --username abcd --password xyz --table table_name --split-by primary_key_column --target-dir hdfs_path -m 8


person Anup    schedule 04.11.2015    source источник
comment
Можете ли вы опубликовать свою команду импорта sqoop?   -  person OneCricketeer    schedule 04.11.2015


Ответы (1)


Я удалил параметр --direct, и работа заработала, как ожидалось. Прямой вариант не работает, если данные содержат символ «,» в случае Netezza. Ниже приведена ошибка исключения, обнаруженная с --direct:

Невозможно выполнить экспорт внешней таблицы org.netezza.error.NzSQLException: ОШИБКА: найден разделитель ',' в поле данных, укажите параметр escapeChar '\' в определении внешней таблицы

person Anup    schedule 20.11.2015
comment
У меня такая же проблема. Я думаю, что это в значительной степени делает --direct параметры бесполезными ... я никогда не узнаю, есть ли в моих данных разделители ... и это просто зависнет от заданий, от которых я зависим. - person joefromct; 26.03.2016
comment
У меня была такая же проблема, добавление --input-escaped-by '\' \ --escaped-by '\' работало как шарм - person Brian; 31.03.2016