如何从Oracle Sqoop导入压缩的分区Hive表

时间:2019-05-21 14:38:51

标签: split compression sqoop orc

如何在压缩表中通过Sqoop从Oracle导入Hive

尝试将Sqoop从Oracle导入文本分区表中的Hive中,并且可以正常工作。当尝试在压缩(SNAPPY,ZLIB,BZIP2)表中执行相同操作时,同时使用带有相应编解码器的Sqoop压缩数据时,它将创建文件。但是当尝试通过Hive选择时,出现错误: 错误:java.io.IOException:java.lang.RuntimeException:ORC拆分生成失败并出现异常:org.apache.orc.FileFormatException:格式错误的ORC文件maprfs:///envir.../2019/4/20190416/part- m-00000.snappy。无效的附言。 (状态=,代码= 0)

测试如下: -创建表 -修改sqoop选项文件 -运行Sqoop -更改表..添加分区 -尝试选择,这会导致错误

SQOOP: --delete-target-dir --target-dir  “ /environ..3/2019/4/20190416” -压缩编解码器  “ org.apache.hadoop.io.compress.BZip2Codec” -蜂巢表  “ ... tmp_member3” --hcatalog-storage-节  '存储为orc tblproperties(“ orc.compress” =“ BZIP2”)' --hive-partition-key  “'年月日'” --hive-partition-value  “'2019','4','20190416'”

蜂巢: 创建外部表xx.tmp_member3(a STRING,kpi_name STRING,b STRING,c STRING),按(年,月,日,日)行格式分隔的字段以“,”存储为ORC位置“ /”作为环境分隔。 2019/4/20190416'TBLPROPERTIES('orc.compress'='BZIP2');

我已经尝试了'set hive.exec.orc.split.strategy = BI',但没有成功。

1 个答案:

答案 0 :(得分:1)

我个人将分两步解决。

第一个方法是将Oracle中的数据获取到常规的蜂巢文本格式阶段表,然后按照需要将数据从阶段转换为蜂巢兽人表。