Передача свойств mysql через sqoop eval

Команда sqoop eval:

sqoop eval --connect 'jdbc:mysql://<connection url>' --driver com.mysql.jdbc.Driver --query "select max(rdate) from test.sqoop_test"

дает мне вывод:

Предупреждение: /usr/hdp/2.3.2.0-2950/accumulo не существует! Импорт Accumulo потерпит неудачу. Пожалуйста, установите $ACCUMULO_HOME в корневой каталог вашей установки Accumulo. Предупреждение: /usr/hdp/2.3.2.0-2950/zookeeper не существует! Импорт Accumulo потерпит неудачу. Пожалуйста, установите $ZOOKEEPER_HOME в корневой каталог вашей установки Zookeeper. 16/10/05 18:38:17 ИНФОРМАЦИЯ sqoop.Sqoop: Запуск версии Sqoop: 1.4.6.2.3.2.0-2950 16/10/05 18:38:17 WARN tool.BaseSqoopTool: Установка пароля в команде линия небезопасна. Попробуйте вместо этого использовать -P. 16/10/05 18:38:17 ПРЕДУПРЕЖДЕНИЕ sqoop.ConnFactory: для параметра --driver задан явный драйвер, однако соответствующий менеджер соединений не устанавливается (через --connection-manager). Sqoop собирается вернуться к org.apache.sqoop.manager.GenericJdbcManager. Пожалуйста, укажите явно, какой менеджер соединений следует использовать в следующий раз. 16/10/05 18:38:17 INFO manager.SqlManager: Использование fetchSize по умолчанию 1000 -------------- | max(rdate) | -------------- | 2014-01-25 |

но я хочу вывод без предупреждения и границы таблицы, такие как:

max (rdate) 2014-01-25

я в основном хочу сохранить этот вывод в файл. заранее спасибо

3 ответа

Вы можете выполнить Sqoop Importоперация по сохранению вывода в HDFS.


Предупреждения прямо вперед.

  • Вы можете установить$ACCUMULO_HOME,$ZOOKEEPER_HOMEесли доступно.

  • Вы можете установить--connection-managerсоответствующий Mysql

  • В целях безопасностирекомендуется использовать-Pдля пароля, а не для записи в команде.

Это не ошибки, вы можете жить с этими предупреждениями.

Вы можете создать файл.sh, записать в него свои команды sqoop, а затем запустить его как shell_file_name.sh > your_output_file.txt

У нас есть два способа получить результаты запроса:

  1. Другой способ - вы можете писать в HDFS, импортируя результаты запроса (- target-dir / path) и читая оттуда.

  2. Вы можете изменить параметр файловой системы в команде sqoop, чтобы сохранить результаты запроса импорта, поэтому идея заключается в том, чтобы импортировать данные в локальную файловую систему, а не в HDFS.

Например: sqoop import -fs local -jt local --connect "строка подключения" --username root --password корневой запрос "Выбрать * из таблицы" --target-dir / home / output

https://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html

Другие вопросы по тегам