【问题标题】:RuntimeException MetaException(message:org.apache.hadoop.hive.serde2.SerDeException org.apache.hadoop.hive.hbase.HBaseSerDeRuntimeException MetaException(消息:org.apache.hadoop.hive.serde2.SerDeException org.apache.hadoop.hive.hbase.HBaseSerDe
【发布时间】:2016-09-19 18:43:32
【问题描述】:

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

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

请建议我解决这个问题

【问题讨论】:

    标签: hadoop hive hbase


    【解决方案1】:

    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 元存储中执行以下操作来解决此问题

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

    【讨论】:

    • 您好,您还可以将类型更改为文本 - 这对于可能有大量列的 json 等文件类型非常有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 2022-06-30
    • 2018-01-27
    • 2015-02-13
    • 2021-05-21
    相关资源
    最近更新 更多