Рассмотрим два запроса:
1) Когда --create-hive-table
используется содержимое таблицы РСУБД будут скопированы на место упомянутой --target-dir
(HDFS Location). Это проверит, существует ли таблица sqoop.emp в Hive или нет. Если таблица в Hive не существует, данные из местоположения HDFS перемещаются в таблицу улья, и все идет хорошо. В случае, если таблица (sqoop.emp) уже существует в улей, выдается ошибка: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. AlreadyExistsException(message:Table emp already exists)
Пример:
sqoop import \
--connect jdbc:mysql://jclient.ambari.org/sqoop \
--username hdfs -P \
--table employee \
--target-dir /user/hive/sqoop/employee \
--delete-target-dir \
--hive-import \
--hive-table sqoophive.emp \
--create-hive-table \
--fields-terminated-by ',' \
--num-mappers 3
2) Когда create-hive-table
используются без hive-import
Схемы свупа .employee (в СУРБД) извлекается и использует, что таблица создается в базе данных по умолчанию в hive (default.employee). Но данные не передаются.
Пример (Модифицированная форма данного в книге (Hadoop Definitive Guide Том Уайт):
sqoop create-hive-table \
--connect jdbc:mysql://jclient.ambari.org/sqoop \
--username hdfs -P \
--table employee \
--fields-terminated-by ','
Теперь вопрос, когда использовать то, что бывший используется при отсутствии данных присутствует только в. RDBMS, и нам нужно не только создавать, но и заполнять таблицу в Hive за один раз. Последний используется, когда таблица должна быть создана в Hive, но не заполняется. Или в случае, если данные уже существуют в HDFS и он должен использоваться для заполнения таблицы улей.
Благодарим Venkata за ваше хорошее объяснение. Можно загрузить данные в таблицу в Вторая команда использует --hive-import как аргумент улья? как this-> sqoop create-hive-table --connect jdbc: mysql: // localhost: 3306/db1 > -пользователь root-пароль пароль --hive-import; –
Нет. У этого аргумента нет. –
OK..Спасибо Венката .. Можете ли вы дать мне какие-либо ссылки, которые вы прочитали или книги? –