大数据
标题:
Hive Parquet格式不支持嵌套map
[打印本页]
作者:
Zeng
时间:
2015-4-22 11:49
标题:
Hive Parquet格式不支持嵌套map
本帖最后由 Zeng 于 2015-4-23 00:46 编辑
最近在AWS上使用Hive 0.13.1版本,在使用Parquet数据格式时,由于故障
Hive-6914
的问题,map字段不支持嵌套的map,这给某些实现带来麻烦。经过调查发现,该故障已经在最新版本1.1.0中解决。但是,目前AWS上的Hive最新版本是0.13.1,我们需要整合Hive-6914的patch,整合的基本过程如下(仅供参考):
git clone https://github.com/apache/hive.git
cd hive/
# 切换到0.13.1分支,这个分支的代码比较旧,造成打patch时存在问题
git checkout -b branch-0.13 origin/branch-0.13
# 下载故障最新的patch,由于故障解决时基于的源文件不一致,
# 会存在patch失败的问题,需要参考branch-0.14源文件
git apply -v HIVE-6914.4.patch
git apply -v HIVE-8359.5.patch
git apply -v HIVE-8909.6.patch
# 编译源文件
mvn clean package -Phadoop-2,dist -DskipTests
# 从AWS Hive集群下载hive-exec-0.13.1-amzn-2.jar,仅替换更新编译过的class文件,
# 然后重新打包,然后上传替换jar文件
# AWS Hive 0.13.1存在较旧的build,文件名为hive-exec-0.13.1-amzn-1.jar,注意检查
jar cvf hive-exec-0.13.1-amzn-2.jar *
复制代码
另外,在用最新Hive版本1.1.0读取打好patch后生成的Parquet文件时,没有问题,但读取打patch前的文件存在问题,根源在于NanoTime.class,之前使用默认的大字节序(BIG-ENDIAN),最新版本改为小字节序(LITTLE_ENDIAN)。这个问题也会影响原始Hive版本,即0.13.1前后的版本。
欢迎光临 大数据 (http://www.bigbase.cn/)
Powered by Discuz! X3.2