修改 Hive Metastore 里记录的 InputFormat、OutputFormat

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Koprvhdix/article/details/79741845

解决方案写在前面:alter table xxxx set fileformat parquet

因为同事升级Spark时出的bug,误以为需要修改 Hive Metastore 的记录。然后历程比较坎坷,所以记录一下

Spark 1.6.2 创建分区表时,在 Hive Metastore 里记录的是

# Storage Information
InputFormat:            org.apache.hadoop.mapred.SequenceFileInputFormat
OutputFormat:           org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat

需要修改为 parquet 格式。找了老多blog,很多只记录了如何修改SerDe Library,没有说怎么修改InputFormat,最后从 Hive 的 jira(HIVE-6756) 里获得启发。应该修改 table 的 fileformat。再结合 抛砖引玉的blog 。每个分区都应该修改 fileformat。

最后是两种方案:一种是用 2.2 把分区表全表重建一遍。还有一种是每个分区都去修改 fileformat。

路漫漫其修远兮,加油加油!

猜你喜欢

转载自blog.csdn.net/Koprvhdix/article/details/79741845