передача свойств 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. 10.16.05 18:38:17 INFO sqoop.Sqoop: Запуск версии Sqoop: 1.4.6.2.3.2.0-2950 10.16.05 18:38:17 WARN tool.BaseSqoopTool: Установка пароля командой- линия небезопасна. Рассмотрите возможность использования -P вместо этого. 10.16.05 18:38:17 ПРЕДУПРЕЖДЕНИЕ sqoop.ConnFactory: Параметр --driver установлен на явный драйвер, однако соответствующий диспетчер соединений не установлен (через --connection-manager). Sqoop вернется к org.apache.sqoop.manager.GenericJdbcManager. Укажите явно, какой менеджер соединений следует использовать в следующий раз. 10.16.05 18:38:17 ИНФОРМАЦИЯ manager.SqlManager: использование значения fetchSize по умолчанию, равного 1000 -------------- | макс(rдата) | -------------- | 2014-01-25 |

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

макс(рдата) 2014-01-25

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


person Nishikant Jain    schedule 05.10.2016    source источник


Ответы (3)


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


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

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

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

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

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

person Dev    schedule 07.10.2016

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

person Farslan    schedule 12.10.2016

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

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

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

например: sqoop import -fs local -jt local --connect "строка подключения" --username root --password root query "Select * from table" --target-dir /home/output

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

person Sathiyan S    schedule 17.10.2016