Hive在HDP沙箱上添加JAR

时间:2015-12-21 23:19:09

标签: xml hadoop jar hive

我需要将XML存储在HDFS中,并在该HDFS文件夹之上创建hive表。我一直在尝试使用此link

中提供的那个

我使用Add jar命令从link下载后,将serde jar添加到配置单元。

  

ADD JAR hivexmlserde-1.0.5.3.jar

我也收到消息说"已添加到类路径"

列表罐子也证实了这一点。但是,当我尝试创建同一link中提到的表时,它失败并显示以下消息

  

失败:SemanticExcepton找不到类   com.ibm.spss.hive.serde2.xml.XmlInputFormat

请帮助。

注意:我使用的是HDP 2.3

附件是结果的屏幕截图。 enter image description here

2 个答案:

答案 0 :(得分:1)

我可以在HDP 2.3沙箱上创建表格。我理解这个问题。添加jar和list jar成功并不意味着jar可供你使用。

请按照以下步骤操作:

Login to the terminal
cd to the path where your jar file is
ls -ltr hivexmlserde-1.0.5.3.jar
Launch hive cli and perform following
hive> add jar hivexmlserde-1.0.5.3.jar;
Added [hivexmlserde-1.0.5.3.jar] to class path
Added resources: [hivexmlserde-1.0.5.3.jar]
hive> CREATE TABLE xml_bank(customer_id STRING, income BIGINT, demographics map<string,string>, financial map<string,string>)
    > ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
    > WITH SERDEPROPERTIES (
    > "column.xpath.customer_id"="/record/@customer_id",
    > "column.xpath.income"="/record/income/text()",
    > "column.xpath.demographics"="/record/demographics/*",
    > "column.xpath.financial"="/record/financial/*"
    > )
    > STORED AS
    > INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
    > OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
    > TBLPROPERTIES (
    > "xmlinput.start"="<record customer",
    > "xmlinput.end"="</record>"
    > );
OK
Time taken: 2.042 seconds
hive> select * from xml_bank;
OK
Time taken: 0.801 seconds

答案 1 :(得分:0)

为jar提供正确的权限和所有权,然后运行ADD命令。我不知道为什么它会这样运作!!!