我试图将一个简单的xml摄取到hive表。表创建正常但在执行select查询或该表上的任何其他查询时获得以下错误:
org.apache.hive.service.cli.HiveSQLException:编译语句时出错:FAILED:RuntimeException java.lang.ClassNotFoundException:com.ibm.spss.hive.serde2.xml.XmlInputFormat
我跟着this的文章。
这里有什么问题?
我可以看到添加了jar文件。
list jars;
/tmp/hivexmlserde-1.0.5.3.jar
并且jar文件具有我遇到错误的类。
[root@sandbox-hdp tmp]# jar -tf hivexmlserde-1.0.5.3.jar | grep -icom.ibm.spss.hive.serde2.xml.XmlInputFormat
com/ibm/spss/hive/serde2/xml/XmlInputFormat$XmlRecordReader.class
com/ibm/spss/hive/serde2/xml/XmlInputFormat.class
有两点需要注意:1。检查xml文件,特别是引号字符(“)。我遇到的问题是”而不是“。 2. Hive用户是否有权阅读jar?尝试chmod 777到罐子里。 3.如果这是一个新的hive开头,添加jar文件。 4.如果通过ambari你想要执行查询:每次都有“添加jar ...”的声明5.每次你需要使用hdfs将jar添加到amabri用户时去除jar:add jar hdfs:/ //tmp/hivexmlserde-1.0.5.3.jar;或其他选项,你可以关注Here.