无法验证 serde:org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe

Posted

技术标签:

【中文标题】无法验证 serde:org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe【英文标题】:Cannot validate serde: org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe 【发布时间】:2017-07-26 03:22:22 【问题描述】:

获取Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Cannot validate serde: org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe 在 Hive 上创建表时。下面是建表脚本:

CREATE EXTERNAL TABlE ratings(user_id INT, movie_id INT,rating INT,rating_time String) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe'
WITH SERDEPROPERTIES ("field.delim"="::")
LOCATION '/user/hive/ratings';

HDP 版本:2.1.1

【问题讨论】:

【参考方案1】:

您正面临这个问题,因为您的 hive lib 没有 hive-contrib jar 或 hive-site.xml 没有指向它。

检查'/usr/lib/hive/lib' 文件夹。这个文件夹里一定有一个jar hive-contrib-<version>.jar

如果您在该文件夹中没有找到任何 jar,请从 link 下载它

请注意正确的版本。

现在将该文件放入上面提到的 hive lib 文件夹中。 您可以通过两种方式将此文件添加到您的配置单元 CLI

    对于单个会话:

add jar /usr/lib/hive/lib/hive-contrib-<version>.jar;

    对于永久解决方案:将其添加到您的 hive-site.xml

    <property> <name>hive.aux.jars.path</name> <value>/usr/lib/hive/lib/*</value> </property>

    P.S:在 hive-contrib-0.13 之后添加了 MultiDelimitSerDe 类。请确保您使用的是正确的版本

【讨论】:

以上是关于无法验证 serde:org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe的主要内容,如果未能解决你的问题,请参考以下文章

org.apache.hadoop.security.AccessControlException

我无法将 csv 加载到临时表 HIVE

无法从引发 serde 异常的 spark 将数据帧保存为配置单元表

Hbase常用api

如何为 Hive 创建架构以使用 SerDe 解析深度嵌套的 json(Azure Application Insights 输出)?

rgmii 怎样连接 serdes