Экспорт sqoop из паркетного стола с ульями в oracle

Можно ли выполнить экспорт sqoop из паркетной таблицы кустов в базу данных Oracle?

наше требование - использовать обработанные данные в устаревшей системе, которая не может поддерживать соединение hadoop / hive, спасибо ..

пытался:

sqoop export -Dmapreduce.job.queuename=root.hsi_sqm \
--connect jdbc:oracle:thin:@host:1521:sid \
--username abc \
--password cde \
--export-dir '/user/hive/warehouse/stg.db/tb_parquet_w_partition/' \
--table UNIQSUBS_DAY

есть ошибка:

ERROR sqoop.Sqoop: Got exception running Sqoop: org.kitesdk.data.DatasetNotFoundException: Descriptor location does not exist: hdfs://nameservice1/user/hive/warehouse/stg.db/tb_parquet_w_partition/.metadata
org.kitesdk.data.DatasetNotFoundException: Descriptor location does not exist: hdfs://nameservice1/user/hive/warehouse/stg.db/tb_parquet_w_partition/.metadata
    at org.kitesdk.data.spi.filesystem.FileSystemMetadataProvider.checkExists(FileSystemMetadataProvider.java:562)
    at org.kitesdk.data.spi.filesystem.FileSystemMetadataProvider.find(FileSystemMetadataProvider.java:605)
    at org.kitesdk.data.spi.filesystem.FileSystemMetadataProvider.load(FileSystemMetadataProvider.java:114)
    at org.kitesdk.data.spi.filesystem.FileSystemDatasetRepository.load(FileSystemDatasetRepository.java:197)
    at org.kitesdk.data.Datasets.load(Datasets.java:108)
    at org.kitesdk.data.Datasets.load(Datasets.java:140)
    at org.kitesdk.data.mapreduce.DatasetKeyInputFormat$ConfigBuilder.readFrom(DatasetKeyInputFormat.java:92)
    at org.kitesdk.data.mapreduce.DatasetKeyInputFormat$ConfigBuilder.readFrom(DatasetKeyInputFormat.java:139)
    at org.apache.sqoop.mapreduce.JdbcExportJob.configureInputFormat(JdbcExportJob.java:84)
    at org.apache.sqoop.mapreduce.ExportJobBase.runExport(ExportJobBase.java:432)
    at org.apache.sqoop.manager.OracleManager.exportTable(OracleManager.java:465)
    at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:80)
    at org.apache.sqoop.tool.ExportTool.run(ExportTool.java:99)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:252)

есть ли правильный подход к этому?

2
0
2 845
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Мы столкнулись с похожими проблемами.

Parquet создает папку .metadata. Если вы создали паркет с помощью другого процесса, он может создать что-то вроде .metadata-00000 (что-то подобное).

Вы можете попробовать переименовать папку в .metadata и попробовать.

В противном случае, если это не сработает, вы можете попробовать экспортировать hcatalog sqoop.

Привет, спасибо за ответ, действительно ли безопасно переименовывать папку? ну, я никогда не использую hcatalog, не могли бы вы привести мне пример?

galih 11.04.2018 12:49

Вы можете сослаться на: - docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.4/….

Deepan Ram 11.04.2018 13:05

Если у вас закончились параметры, нам нужно изменить имя папки.

Deepan Ram 11.04.2018 13:05

Привет, это моя структура каталогов управляемой таблицы, /user/hive/warehouse/stg.db/tb_parquet_w_partition/datex=201‌ 8-04-10, так какую из них я должен переименовать?

galih 11.04.2018 14:26
Ответ принят как подходящий

Привет тем, кто сталкивается с той же проблемой, что и я, вот мое собственное решение (оно может отличаться в зависимости от вашей среды)

  1. записать данные куста в каталог hdfs, вы можете использовать команду вставки перезаписи каталога в куст.
  2. если вы удалили сгенерированные данные из запроса куста по указанному пути hdfs, используйте это: hdfs dfs -text <hdfs_path_file>/000000_0.deflate | hdfs dfs -put <target_file_name> <hdfs_target_path>
  3. sqoop экспортирует раздутые файлы с помощью команды sqoop export, не забудьте сопоставить свой столбец в соответствии с вашим типом данных в целевой таблице

Другие вопросы по теме