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

67
8

Команда 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 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6.2.3.2.0-2950 16.10.05 18:38:17 WARN tool.BaseSqoopTool: установка пароля на командном сервере, линия небезопасна. Вместо этого рассмотрите возможность использования -P. 16/10/05 18:38:17 WARN sqoop.ConnFactory: Параметр --driver установлен на явный драйвер, однако соответствующий диспетчер подключений не устанавливается (через --connection-manager). Sqoop собирается вернуться к org.apache.sqoop.manager.GenericJdbcManager. Укажите, какой диспетчер подключений должен использоваться в следующий раз. 16/10/05 18:38:17 INFO manager.SqlManager: использование default fetchSize 1000 -------------- | max (rdate) | -------------- | 2014-01-25 |

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

max (rdate) 2014-01-25

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

спросил(а) 2016-10-05T21:41:00+03:00 3 года, 9 месяцев назад
1
Решение
117

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

ответил(а) 2016-10-12T11:33:00+03:00 3 года, 9 месяцев назад
39

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

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

Вы можете изменить параметр файловой системы в команде 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#id1762587

ответил(а) 2016-10-17T13:03:00+03:00 3 года, 8 месяцев назад
39

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

Предупреждения прямолинейны.


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

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

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

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

ответил(а) 2016-10-07T16:36:00+03:00 3 года, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема