Когда я пытаюсь импортировать таблицу MySQL в существующую таблицу кустов, приведенные ниже команды работают нормально.
Но когда я пытаюсь использовать запрос для импорта результата в ту же таблицу кустов, он запрашивает --target-dir
и --split-by
.
Обязательно ли указывать их при импорте результатов запроса? почему они не требуются при импорте напрямую из таблицы
Я получаю сообщение об ошибке ниже -
Предупреждение: /usr/lib/sqoop/../accumulo не существует! Импорт Accumulo потерпит неудачу.
Пожалуйста, установите $ ACCUMULO_HOME в корневой каталог вашей установки Accumulo.
19/03/29 02:50:40 ИНФОРМАЦИЯ sqoop.Sqoop: Запуск версии Sqoop: 1.4.6-cdh5.13.0
19/03/29 02:50:40 WARN tool.BaseSqoopTool: установка пароля в командной строке небезопасна. Попробуйте вместо этого использовать -P.
Необходимо указать пункт назначения с помощью --target-dir.
Попробуйте --help для инструкций по использованию.
Импорт непосредственно из таблицы форм -
sqoop import \
--connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" \
--username retail_dba \
--password cloudera \
--m 2 \
--table departments \
--hive-import \
--hive-home "/user/hive/warehouse/" \
--hive-table sqoop_import.dep \
--hive-overwrite \
--outdir java_files \
Импорт по запросу -
sqoop import \
--connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" \
--username retail_dba \
--password cloudera \
--m 2 \
--query "select department_id,department_name from departments where \$CONDITIONS and department_id>2" \
--hive-import \
--hive-home "/user/hive/warehouse/" \
--hive-table sqoop_import.dep \
--hive-overwrite \
--outdir java_files \