在5.2.1版本上使用AWS EMR作爲數據處理環境時,在處理具有複雜模式和大量嵌套字段的巨大JSON文件時,Hive無法處理它,它達到4000個字符列長度的當前限制。Hive Metastore列寬限制
Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidObjectException(message:Invalid column type name is too long: [...]
望着文檔,有關於這個問題,或者類似的已經有很多的問題,但所有未解決 [1,2。在此,建議將Metastore的幾個字段更改爲不同的值,以便爲結構定義提供更大的長度。
COLUMNS_V2.TYPE_NAME
TABLE_PARAMS.PARAM_VALUE
SERDE_PARAMS.PARAM_VALUE
SD_PARAMS.PARAM_VALUE
正如在第一個問題中所述,提出的解決方案中提到:
[...] after setting the values, the Metastore must also be configured and restarted."
然而,它並沒有指定在DB值旁邊配置的必須是也。
因此,更新從string
領域的當前本地Metastore(MySQL的在這種情況下),以mediumtext
並重新啓動Metastore過程後,仍然不能得到任何進展嘗試加載JSON繼續失敗,同樣的錯誤。
我是否錯過了一些東西或者是否有人找到了解決此問題的替代解決方法?
你有沒有找到任何解決方案呢?具有完全相同的問題 –
我認爲它與https://issues.apache.org/jira/browse/HIVE-15249 –
@GauravShah有關,仍然沒有運氣,已經在本地w/Hadoop&Hive(_local mysql Metastore_)。我將嘗試使用_embedded_ Derby數據庫。 – blamblam