2017-02-08 9 views
1

Я использую sqoop для импорта данных из MySQL в улей, то команда, которую я использовал ниже:sqoop импорт в качестве паркетного файла целевой реж, но не может найти файл

sqoop import --connect jdbc:mysql://localhost:3306/datasync \ 
    --username root --password 654321 \ 
    --query 'SELECT id,name FROM test WHERE $CONDITIONS' --split-by id \ 
    --hive-import --hive-database default --hive-table a \ 
    --target-dir /tmp/yfr --as-parquetfile 

Таблица улей и данные вставляются, однако я не могу найти файл паркета.

Кто-нибудь знает?

С наилучшими пожеланиями,

Feiran

+1

Данные будут перемещены в каталог хранилища улья из '--target-dir'. – franklinsijo

+0

_ «Создана таблица улья» _ - просто запустите команду show show table *** в Hive, предложение LOCATION покажет, где хранятся ваши файлы данных в HDFS. –

+0

Спасибо, franklinsijo и Самсон Scharfrichter – Feiran

ответ

1

Sqoop импорт в улей работ в 2 этапа:

  • Извлечение данных из СУБД в HDFS
  • Создать улья таблицу, если не существует и Загрузка данных в hive table

В вашем случае,

, во-первых, данные хранятся в --target-dir т.е. /tmp/yfr

Затем он загружается в улей таблицу a использованием

LOAD DATA INPTH ... INTO TABLE.. команду.

Как указано в комментариях , данные перемещаются в каталог хранилища улья, поэтому в --target-dir данных нет.

+0

Спасибо, что файл истинно на складе: /opt/data/hive/warehouse/chinacloud.db/aaaa/.metadata /opt/data/hive/warehouse/chinacloud.db /aaaa/.signals /opt/data/hive/warehouse/chinacloud.db/aaaa/be31fa3f-7bd3-406d-a9e5-b30240c9242c.parquet /opt/data/hive/warehouse/chinacloud.db/aaaa/bfe43c8b- d5c4-4cde-819f-d52a7f210672.parquet /opt/data/hive/warehouse/chinacloud.db/aaaa/d7e5deeb-594b-44b0-8abb-1990fa8fc17a.parquet – Feiran

+0

так, значит ли это, что -target-dir является добрым временного места для файла? – Feiran

+0

@Feiran, если вы делаете импорт только для HDFS, ваши данные будут находиться в этом месте, в случае импорта куста да, это временное местоположение. –