1. 程式人生 > >修改 Hive Metastore 裡記錄的 InputFormat、OutputFormat

修改 Hive Metastore 裡記錄的 InputFormat、OutputFormat

解決方案寫在前面: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。

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