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

时间:2017-07-26 03:22:22

标签: hive hortonworks-data-platform

获取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 个答案:

答案 0 :(得分:2)

您遇到此问题,因为您的hive lib没有hive-contrib jar或者hive-site.xml没有指向它。

检查'/usr/lib/hive/lib'个文件夹。此文件夹中必须有一个jar hive-contrib-<version>.jar

如果您在该文件夹中找不到任何jar,请从此link

下载

请注意正确的版本。

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

  1. 单个会话:
  2. add jar /usr/lib/hive/lib/hive-contrib-<version>.jar;

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

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

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