Sqoop Экспорт HDFS в MySQL завершается неудачно

0

Я не знаю, где я ошибаюсь, но моя команда экспорта Sqoop из HDFS в MySQL не работает каждый раз.

sqoop export --connect "jdbc:mysql://quickstart.cloudera:3306/streaming" 
--username root --password cloudera --table pd_count --update-key id 
--update-mode allowinsert  --export-dir /user/cloudera/input/* -m 1 --batch

В каталоге экспорта есть только 1 папка, и она содержит 3 файла, а именно,

  1. часть-м-00000
  2. часть-м-00001
  3. часть-м-00002

Я обновил последний файл, чтобы узнать о аргументе --update. Но, работа терпит неудачу, независимо от того, сколько перестановок я стараюсь.

  1. Я экспортирую данные в MySQL без инкрементного обновления, и данные успешно экспортируются.
  2. Я импортирую данные в HDFS с "incremental append", это успех.
  3. Но когда я пытаюсь экспортировать данные в MySQL с "ключом обновления" и "режимом обновления", он не переносится и не работает.

Вышеупомянутая команда была последней использованной командой.

Ниже приведен последний журнал ошибок по этой ссылке, пожалуйста, помогите мне.

Заранее спасибо.

Теги:
hadoop
sqoop

1 ответ

0

Хорошо.. Я принимал что-то другое. Не могли бы вы попытаться использовать приведенные ниже параметры

  1. Используйте --verbose в экспорте еще раз для расширенных журналов.
  2. Вы можете посмотреть журналы приложений из неудавшегося приложения. Для их запуска выполните следующую команду в качестве пользователя, который запустил yarn logs -applicationId application_1513399439223_0001 > app_logs.txt.
  3. Кажется, вы не добавили --input-fields-terminated-by.

Обновление ответа в соответствии с вашим последним комментарием

Я вижу, что вы убили работу. Это может быть связано с производительностью. Пожалуйста, попробуйте настроить ниже и снова запустите sqoop:

  • Задайте количество карт на 4 -m 4
  • Вставьте данные в партии --batch
  • Используйте свойство sqoop.export.records.per.statement чтобы указать количество записей, которые будут использоваться в каждом объявлении insert sqoop export -Dsqoop.export.records.per.statement=100 --connect
  • Наконец, укажите, сколько строк будет добавлено для каждой транзакции с свойством sqoop.export.statements.per.transaction. sqoop export -Dsqoop.export.statements.per.transaction=100 --connect

Просьба предоставить журналы пряжи и каков объем данных?

  • 0
    Я использовал "verbose" для создания расширенных журналов. Вот журнал . --input-fields-terminated-by не помог мне.
  • 0
    После использования всех предложенных вами команд производительность возросла, а время выполнения сократилось до 7 м 19 с. Раньше это занимало более 30 минут. Но, грустная часть - работа снова потерпела неудачу. Объем данных составляет 64 МБ. Мое задание Sqoop использует MapReduce в качестве механизма выполнения, а не YARN. Поэтому я думаю, что не могу предоставить журналы YARN.
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню