Разница между командами --warehouse-dir и --target-dir в sqoop

Я не мог понять разницу между следующими командами в sqoop. Было бы лучше, если бы кто-то мог объяснить с небольшими примерами.

 --warehouse-dir and --target-dir 

Спасибо


person sree    schedule 24.05.2016    source источник


Ответы (6)


Ниже параметр указывает на расположение таблицы куста по умолчанию. Его можно использовать для целей разработки, когда вы просто хотите выполнить некоторые тесты на внутренних таблицах.

--склад-дир

Параметр ниже указывает на некоторое местоположение hdfs, где вы можете монтировать внешние таблицы куста. Это полезно в производственной среде, где вы хотите, чтобы все данные были доступны для некоторого внешнего каталога и внешней таблицы.

--target-дир

person sumitya    schedule 24.05.2016

Что у меня получилось при импорте:

--warehouse-dir : создает каталог, который работает как каталог базы данных (sqoop_db_movies) и каталог с именем таблицы (как указано в команде импорта), автоматически создаваемый с импортированными файлами в каталог склада (каталог базы данных).

Пример: sqoop import --options-file /home/cloudera/sqoop/conn --table movies --warehouse-dir /sqoop_db_movies -m 1

Вывод как:

/sqoop_db_movies/фильмы

/sqoop_db_movies/фильмы/_УСПЕХ

/sqoop_db_movies/фильмы/часть-м-00000

--target-dir: создает каталог, который работает как имя таблицы (sqoop_table_movies) с импортированными файлами.

Пример: sqoop import --options-file /home/cloudera/sqoop/conn --table movies --target-dir /sqoop_table_movies -m 1

Вывод как:

/sqoop_table_movies/_УСПЕХ

/sqoop_table_movies/part-m-00000

person Santosh Singh    schedule 16.01.2018

--warehouse-dir 

обычно вы используете этот параметр, когда импортируете все таблицы с помощью инструмента import-all-tables с помощью sqoop. Этот каталог может быть любым, либо вашим кустом /data/warehouse каталог или какой-либо другой родительский каталог. Все таблицы будут импортированы в этот родительский каталог.

--target-dir

Этот параметр используется, когда вам нужно импортировать одну таблицу с помощью инструмента импорта таблиц. Для каждой таблицы вы должны указать каталог, и он не должен уже существовать в пути.

person Aman Mundra    schedule 26.05.2016

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

В качестве альтернативы Sqoop предлагает еще один параметр, по которому можно выбрать выходной каталог. Вместо прямого указания конечного каталога параметр --warehouse-dir позволяет указать только родительский каталог.

Вместо того, чтобы записывать данные в каталог хранилища, Sqoop создаст каталог с тем же именем, что и таблица внутри каталога хранилища, и импортирует туда данные.

Это похоже на случай по умолчанию, когда Sqoop импортирует данные в ваш домашний каталог на HDFS, за исключением того, что параметр --warehouse-dir позволяет вам использовать каталог, отличный от домашнего каталога. Обратите внимание, что этот параметр не нужно изменять при каждом импорте таблицы, если только вы не импортируете таблицы с одним и тем же именем.

person Piyush    schedule 15.04.2017

Обычно мы используем складской каталог, даже если складской каталог с несколькими таблицами или одной таблицей работает нормально.

Еще одним преимуществом является то, что с S3 работает только каталог-хранилище, это очень важно, когда вы хотите, чтобы данные внешних таблиц хранились в s3.

person muthu veerappan alagappan    schedule 06.04.2017

--warehouse-dir указывает на папку Hive для импорта данных (я использовал ее при оптовом импорте таблиц), а --target-dir необходим при импорте в Hive через запрос (sqoop ошибается, запрашивая его). В последнем сценарии он используется как временная область для картографов, за которыми следует LOAD INPATH. Я устанавливал --target-dir так же, как --warehouse-dir (после переключения с полной таблицы на импорт запроса) и получал пустые таблицы. Удалил --warehouse-dir из команды sqoop и изменил --target-dir на /tmp/newfolder, и мой импорт в Hive был доволен.

person Edi Bice    schedule 17.01.2017