Можем ли мы использовать импорт Sqoop2 для создания только файла, а не в таблицу HIVE и т. Д. - PullRequest
0 голосов
/ 08 января 2020

Я попытался выполнить следующие команды в Sqoop2:

Этот работает, когда были созданы файлы детали, разделенные TAB (part-m-00000, part-m-00001 и c):

sqoop import --connect jdbc:oracle:thin:@999.999.999.999:1521/SIDNAME --username god --table TABLENAME --fields-terminated-by '\t' --lines-terminated-by '\n' -P

Этот сбой:

sqoop import -Dmapreduce.job.user.classpath.first=true \
-Dmapreduce.output.basename=`date +%Y-%m-%d` \
--connect jdbc:oracle:thin:@999.999.999.999:1521/SIDNAME \
--username nbkeplo \
--P \
--table TABLENAME \
--columns "COL1, COL2, COL3" \
--target-dir /usr/data/sqoop \
-–as-parquetfile \
-m 10

Ошибка:

20/01/08 09:21:23 ERROR tool.BaseSqoopTool: Error parsing arguments for import:
20/01/08 09:21:23 ERROR tool.BaseSqoopTool: Unrecognized argument: -–as-parquetfile
20/01/08 09:21:23 ERROR tool.BaseSqoopTool: Unrecognized argument: -m
20/01/08 09:21:23 ERROR tool.BaseSqoopTool: Unrecognized argument: 10

Try --help for usage instructions.

Я хочу выходной файл должен быть <.parquet>, а не таблицей HIVE (хотите использовать с Apache Spark напрямую, без использования HIVE). Возможно ли создание этого файла <.parquet> с помощью Sq oop import?

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Работы ниже:

sqoop import \
--connect jdbc:oracle:thin:@999.999.999.999:1521/SIDNAME \
--username user \
--target-dir /xxx/yyy/zzz \
--as-parquetfile \
--table TABLE1 \
-P
0 голосов
/ 09 января 2020

Импорт напрямую в HDFS (как AVRO, SequenceFile или) возможен с Sq oop. Когда вы выводите данные в Hive, они все еще записываются в HDFS, прямо в хранилище Hive для управляемых таблиц. Кроме того, Spark может читать из любого места HDFS, на которое у него есть разрешение.

Ваши фрагменты кода не совпадают, и вы не упомянули предпринятые вами шаги по устранению неполадок.

Я бы добавил аргументы --split-by, --fields-terminated-by и --lines-terminated-by к твоя команда.

...