RuntimeException MetaException(消息:org.apache.hadoop.hive.serde2.SerDeException org.apache.hadoop.hive.hbase.HBaseSerDe

时间:2016-09-19 18:43:32

标签: hadoop hive hbase

在HDP集群上,我正在尝试使用现有的Hbase表创建和集成Hive表。它创建了一个蜂巢表。但是当我尝试查询hive表时,它会抛出以下异常,尤其是当列数超过200 时。

我检查了hbase和amp;中的#列数。蜂巢是一样的。没有得到适当的解决方案来调试它。

hive> select * from hbase_hive.lead;

FAILED: RuntimeException MetaException(message:org.apache.hadoop.hive.serde2.SerDeException 
org.apache.hadoop.hive.hbase.HBaseSerDe: 
columns has 273 elements while hbase.columns.mapping has 204 elements (counting the key if implicit))

在这种情况下是否有任何列限制?

请建议我解决此问题

1 个答案:

答案 0 :(得分:1)

This has fixed the issue.

https://hortonworks.my.salesforce.com/kA2E0000000LZQ5?srPos=0&srKp=ka2⟨= EN_US

ROOT原因:

4000个字符的hive Metastore中SERDE_PARAMS表中PARAM_VALUE字段的字符限制是此问题的根本原因。此限制可防止Hive创建具有高列数的表,最终导致desc或select * from失败并出现上述错误。

替代方法:可以通过在hive Metastore中执行以下操作来解决此问题

-- log into Hive Metastore DB -- >alter table SERDE_PARAMS MODIFY PARAM_VALUE VARCHAR(400000000);