温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github:
https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
问题重现
当我们在使用ORC文件格式创建Hive表,并且对Hive表的schema进行更改后,然后进行如insert into…select或insert overwrite … select会报错,以下具体看看报错。
1.首先我们创建一张ORC格式的Hive表,从插入一行数据。
CREATE TABLE orc_test(
s1 date,
s2 string,
s3 string
)
STORED AS ORC
LOCATION '/fayson/orc_test';
insert into orc_test values('2015-12-18','25','11111');
select * from orc_test;
(可左右滑动)

2.我们先使用alter命令增加一列到该表,然后对该表进行insert操作。
ALTER TABLE orc_test ADD COLUMNS (testing string);
INSERT overwrite table orc_test SELECT * FROM orc_test;
INSERT into table orc_test SELECT * FROM orc_test;
(可左右滑动)

3.发现无论是insert还是insert overwrite都会报错,如下。
-----
Diagnostic Messages for this Task:
Error: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row
at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:179)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:

本文介绍了在CDH5中使用ORC文件格式的Hive表时遇到的schema更改后insert操作报错问题,以及两种解决方法:禁用矢量化和改用Parquet格式。同时,讨论了ORC在CDH5中的问题,包括事务支持不完善,与Hive矢量化执行不兼容,并提及Impala不支持ORC格式,建议在CDH5环境中避免使用ORC,推荐使用Parquet。
最低0.47元/天 解锁文章
755

被折叠的 条评论
为什么被折叠?



