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

标签 hadoop hive hbase

在 HDP 集群上,我正在尝试创建 Hive 表并将其与现有 Hbase 表集成。它创建配置单元表。但是当我尝试查询配置单元表时,它会抛出以下异常尤其是当列数超过 200 时。

我检查了 hbase 和 hive 中的列数相同。没有得到适当的解决方案来调试它。

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))

这种情况下有列数限制吗?

请建议我解决这个问题

最佳答案

This has fixed the issue.

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

根本原因:

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

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

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

关于hadoop - RuntimeException MetaException(消息 :org. apache.hadoop.hive.serde2.SerDeException org.apache.hadoop.hive.hbase.HBaseSerDe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39580031/

相关文章:

hadoop - Hadoop Cassandra CqlInputFormat分页

date - 在 hive 表中创建具有日期数据类型的列

hadoop - java.lang.ClassNotFoundException : org. apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$BlockingInterface 问题

hadoop - HBASE 与 HIVE : What is more suitable for data that is uniquely defined by multiple fields?

hadoop - 如何开始开发 mahout

hadoop - CustomWritable 对象导致测试用例失败

python - 根据时间戳搜索最新的行

hadoop - 如何在配置单元的 SHOW PARTITIONS 子句上使用过滤条件?

hadoop - 配置单元 pyspark 日期比较

hadoop - 将 hdfs 目录从全分布备份到本地目录?