2016-04-19 65 views
3

使用apache-hive-0.13.1。 在创建表蜂巢抛出一个错误如下Hive在创建表“无法验证serde:com.cloudera.hive.serde.JSONSerDe”时抛出错误。

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Cannot validate serde: com.cloudera.hive.serde.JSONSerDe 

表结构

create external table tweets(id BigInt, created_at String, scource String, favorited Boolean, retweet_count int, 
retweeted_status Struct < 
    text:String,user:Struct< 
     screen_name:String, name:String>>, 
    entities Struct< 
     urls:Array<Struct<   
      expanded_url:String>>, 
     user_mentions:Array<Struct< 
      screen_name:String, 
      name:String>>, 
     hashtags:Array<Struct<text:String>>>, 

text String, 
user Struct< 
    screen_name:String, 
    name:String, 
    friends_count:int, 
    followers_count:int, 
    statuses_count:int, 
    verified:boolean, 
    utc_offset:int, 
    time_zone:String> , 
in_reply_to_screen_name String) 
partitioned by (datehour int) 
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe' 
location '/home/edureka/sachinG' 

添加在课堂上json-serde-1.3.6-SNAPSHOT-jar-with-dependencies.jar来解决这个问题,但没有成功

+0

通常,这意味着所需的罐不可用在类路径,请参阅(https://cwiki.apache.org/ confluence/display/Hive/HivePlugins)来交叉验证您是否正确添加了JAR。 –

+0

感谢Manoj的回复,我想,我正确地添加了一个json-serde-1.3.6-SNAPSHOT-jar -with-dependencies.jar由于Hive给予了确认“Added/home/edureka/Desktop/LMS/lib/json-serde -1.3.6-SNAPSHOT-jar -with-dependencies.jar到类路径“。 – user3302083

+0

此外,当我检查添加罐与“列表罐”赞赏它显示我“JSON的serde-1.3.6-SNAPSHOT-jar -with-dependencies.jar” – user3302083

回答

2

最后,有一个解决方案。问题在于json-serde-1.3.6-SNAPSHOT-jar-with-dependencies.jar 不同的发行版(Cloudera,Azure等)需要不同的JSON-Serde jar文件。手段,serde jar应该与那里分配兼容。

我改变了罐子,它为我工作。

+0

嘿,你从哪里得到jar文件? – noname

1

我在处理hive 1.2.1和hbase 0.98时遇到了类似的问题。我遵循下面的步骤和问题已解决

1)从HBase的/ lib中位置复制所有hbase- *文件蜂巢/ lib目录

2)验证了蜂房HBase的处理程序-1.2.1.jar存在于蜂房/ lib中

3)已验证蜂房SERDE-1.2.1.jar存在于蜂房/ lib中

4)已验证动物园管理员-3.4.6.jar在蜂房/ lib中存在(如果没有从HBase的复制/ lib并粘贴到hive/lib)

5)在hive-site.xml中(如果不存在,请使用hive-default.xml.templ酯)位于蜂房/ CONF下 '两个'

一个)hive.aux.jars.path字段和

b)中hive.added.jars.path字段

给予路径'在/ usr /本地/蜂巢/ lib目录/'。

6)打开蜂房终端和使用以下命令创建该表: -

CREATE TABLE emp_hive (
RowKey_HIVE String, 
Employee_No int, 
Employee_Name String, 
Job String, 
Mgr int, 
Hiredate String, 
Salary int, 
Commision int, 
Department_No int 
) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES ("hbase.columns.mapping" =":key,details:Employee_No_hbase,details:Employee_Name_hbase,details:job_hbase,details:Mgr_hbase,details:hiredate_hbase,details:salary_hbase,details:commision_hbase,details:department_no_hbase") 
TBLPROPERTIES("hbase.table.name"="emp_hbase"); 
相关问题