Sqoop импортирует данные в hive и hdfs - PullRequest
0 голосов
/ 19 февраля 2019

Можем ли мы импортировать данные с помощью sqoop в hdfs и hive?Я пробовал это с двумя разными пользователями (root и admin) Ниже команды между root и admin

[Root]

sqoop import --connect jdbc:mysql://10.6.162.58/test_alpha --username pbd -P --table posts --hive-import --hive-database test_root --hive-table posts1 --hive-drop-import-delims --null-string '\\N' --null-non-string '\\N' --target-dir test_hive_root/2

[Admin]

sqoop import --connect jdbc:mysql://10.6.162.58/test_alpha --username pbd -P --table posts --hive-import --hive-database test_admin --hive-table posts1 --hive-drop-import-delims --null-string '\\N' --null-non-string '\\N' --target-dir test_hive_admin/2

Он возвращает:

В обоих случаях успешный импорт данных в куст, но оба не удается импортировать в HDFS.

Для пользователя root не создается каталог, который я определил "test_hive_root / 2"

Для администратора это просто создает каталог "test_hive_admin / 2", но только файл "success", который был создан, а не данные (обычно, когда я импортирую его в HDFS, он создает файл "success" и еще 4 файла)

Как я могу решить эту проблему?Может ли sqoop импортировать в HDFS и Hive?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

target-dir определяет, где данные должны временно храниться перед загрузкой в ​​таблицу Hive, но не создает таблицу кустов в этом месте.

Таблица создается в каталоге, указанном в свойстве hive.metastore.warehouse.dir вhive-site.xml.

Если вы хотите импортировать в определенный каталог, используйте аргумент target-dir без hive-import и создайте таблицу кустов поверх каталога HDFS.

(или)

Создайте внешнюю таблицу Hive, указывающую на ваш целевой каталог, затем в импорте sqoop удалите аргумент --create-hive-table и --target-dir.

Прочитайте ответ здесь: https://community.hortonworks.com/questions/198586/running-a-sqoop-job-with-a-target-dir-destination.html

А здесь: https://community.hortonworks.com/questions/193934/sqoop-import-mssql-table-into-hdfs.html

0 голосов
/ 20 февраля 2019

Надеюсь, вы использовали префикс / при указании пути для --target-dir

sqoop import --connect jdbc:mysql://10.6.162.58/test_alpha --username pbd -P --table posts --hive-import --hive-database test_root --hive-table posts1 --hive-drop-import-delims --null-string '\\N' --null-non-string '\\N' --target-dir /test_hive_root/2
...