大数据

 找回密码
 立即注册
搜索
热搜: AWS Hadoop Tableau
查看: 30059|回复: 0
打印 上一主题 下一主题

Hive Parquet格式不支持嵌套map

[复制链接]

15

主题

15

帖子

287

积分

版主

Rank: 7Rank: 7Rank: 7

积分
287
跳转到指定楼层
楼主
发表于 2015-4-22 11:49:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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,整合的基本过程如下(仅供参考):
  1. git clone https://github.com/apache/hive.git
  2. cd hive/
  3. # 切换到0.13.1分支,这个分支的代码比较旧,造成打patch时存在问题
  4. git checkout -b branch-0.13 origin/branch-0.13
  5. # 下载故障最新的patch,由于故障解决时基于的源文件不一致,
  6. # 会存在patch失败的问题,需要参考branch-0.14源文件
  7. git apply -v HIVE-6914.4.patch
  8. git apply -v HIVE-8359.5.patch
  9. git apply -v HIVE-8909.6.patch
  10. # 编译源文件
  11. mvn clean package -Phadoop-2,dist -DskipTests
  12. # 从AWS Hive集群下载hive-exec-0.13.1-amzn-2.jar,仅替换更新编译过的class文件,
  13. # 然后重新打包,然后上传替换jar文件
  14. # AWS Hive 0.13.1存在较旧的build,文件名为hive-exec-0.13.1-amzn-1.jar,注意检查
  15. 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前后的版本。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表