首页 > 解决方案 > Hive ddl 失败并出现 java.lang.ClassNotFoundException - org.apache.hadoop.hive.serde2.SerDe

问题描述

尝试将 XML 数据文件加载到配置单元表中,在创建表时出错。谁能帮助我:)-。下面给出 ddl hql 文件。使用 hive 2.3.7 版本。

出现错误失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。org/apache/hadoop/hive/serde2/SerDe


    Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.serde2.SerDe
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 44 more
    
    FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/apache/hadoop/hive/serde2/SerDe


HQL-Script:

Given bewlow the ddl hql file.Using hive 2.3.7 version.
add jar /home/userx/apache-hive-2.3.7-bin/lib/hivexmlserde-1.0.0.0.jar;
add jar /home/userx/apache-hive-2.3.7-bin/lib/hive-hcatalog-core-2.3.7.jar;
add jar /home/userx/apache-hive-2.3.7-bin/lib/hive-serde-2.3.7.jar;

drop table if exists xmltablenested;

create table if not exists xmltablenested
(
name string,
age string,
contacts array<struct<mobile:string>>
)
row format serde 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
with serdeproperties 
(
"column.xpath.name" = "/company/emp/name/text()",
"column.xpath.age" = "/company/emp/age/text()",
"column.xpath.contacts" = "/company/emp/contacts"
)

stored as 
inputformat 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
outputformat 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'

tblproperties (
"xmlinput.start" = "<company>",
"xmloutput.end" = "</company>" )
;

标签: javahadoophivexmldataset

解决方案


推荐阅读