2017-07-26 728 views
1

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

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

您都面临这个问题,因为您的蜂巢的lib没有蜂房的contrib罐子或蜂房-site.xml中没有指向它。

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

中如果没有找到该文件夹​​中的任何罐子从这个link

请照顾的正确版本下载。

现在将该文件放到上面提到的配置单元库文件夹中。

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

  • 对于永久的解决方案:添加此 您可以通过两种方式

    1. 单会话将此文件添加到您的蜂巢CLI到您的hive-site.xml

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

      P.S:MultiDelimitSerDe类蜂房的contrib-0.13.Please之后添加确保您使用的是正确的版本