如何在压缩表中将sqoop从oracle导入到hive
尝试将sqoop从oracle导入到文本分区表中的配置单元,结果成功了。当尝试在压缩(snappy、zlib、bzip2)表中执行相同操作时,同时使用sqoop和相应的编解码器压缩数据,它会创建文件。但是在尝试选择thru hive时,我得到了错误:error:java.io.ioexception:java.lang.runtimeexception:orc split generation失败,异常为:org.apache.orc.fileformatexception:malformed orc file maprfs:///envir…/2019/4/20190416/part-m-00000.snappy。postscript无效(状态=,代码=0)
测试如下:-create table-modify sqoop option file-run sqoop-alter table。。添加分区-尝试选择,这将导致错误
sqoop:--delete target dir--target dir“/environ..3/2019/4/20190416”--压缩编解码器“org.apache.hadoop.io.compress.bzip2codec”--配置单元表“…tmp\u member3”--hcatalog storage stanza”存储为orc tblproperty(“orc.compress”=“bzip2”)'--配置单元分区键“year'、“month'、“day'”--配置单元分区值“2019'、“4'、“20190416'”
配置单元:创建外部表xx.tmp\u member3(a字符串,kpi\u name字符串,b字符串,c字符串),按(year int,month int,day int)行格式分隔字段,以“,”结尾,存储为orc location“/envir../2019/4/20190416”tblproperties('orc.compress'='bzip2');
我已经尝试过“set hive.exec.orc.split.strategy=bi”,但没有成功。
1条答案
按热度按时间oyxsuwqo1#
我个人会分两步来解决这个问题。
首先是从oracle获取数据到一个普通的配置单元文本格式的stage表,然后根据您的要求使用压缩格式从stage获取到配置单元orc表。