Hive sqoop从配置单元分区拼花地板表导出到oracle

Hive sqoop从配置单元分区拼花地板表导出到oracle,hive,sqoop,parquet,Hive,Sqoop,Parquet,是否可以将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/st

是否可以将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)

有什么正确的方法吗?

我们也面临着类似的问题

Parquet创建.metadata文件夹。如果您使用其他流程创建拼花地板,它可能会创建.metadata-00000(类似的内容)

您可以尝试将文件夹重命名为.metadata,然后重试


否则,如果这不起作用,您可以尝试使用hcatalog sqoop导出。

您好,对于遇到与我相同问题的人,这里是我自己的解决方案(这可能因您的环境而异)

  • 将配置单元数据写入hdfs目录,可以在配置单元中使用插入覆盖目录命令
  • 如果在指定的hdfs路径中对配置单元查询生成的数据进行了压缩,请使用以下方法:
    hdfs-dfs-text/000000_0.deflate | hdfs-put
  • sqoop使用sqoop export命令导出膨胀文件,不要忘记根据目标表中的数据类型映射列

  • 您好,谢谢您的回复,重命名文件夹真的安全吗?我从不使用hcatalog,你能给我举个例子吗?你可以参考:-。如果你没有选项,那么我们需要更改文件夹的名称。嗨,这是我的托管表目录结构,/user/hive/warehouse/stg.db/tb_parquet_w_partition/datex=2018-04-10,那么我应该重命名哪个?