执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。无法验证serde:org.apache.hadoop.hive.serde2.avro.AvroSerde

时间:2017-01-14 06:33:06

标签: hive avro flume-twitter hive-serde avro-tools

我正在使用avro serde创建一个hive表来存储Twitter数据。

这是代码 -

create table tweets
    row format serde
    'org.apache.hadoop.hive.serde2.avro.AvroSerde'
    stored as inputformat
    'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
    outputformat
    'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
 tblproperties('avro.schema.url'='hdfs://user/itelligence/ee/TwitterDataAvroSchema.avsc');

我收到错误 -

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. 
Cannot validate serde: org.apache.hadoop.hive.serde2.avro.AvroSerde

我已经尝试过输入avsc文件作为

tblproperties('avro.schema.url'='hdfs:///user/itelligence/ee/TwitterDataAvroSchema.avsc');
tblproperties('avro.schema.url'='file://user/itelligence/schema/TwitterDataAvroSchema.avsc');

在本地和hdfs文件系统中,我收到同样的错误。

1 个答案:

答案 0 :(得分:0)

错误消息指出Hive未找到SerDe Java类。它甚至懒得阅读架构...

请注意" SerDe"有一个资本D ,因为它代表Serializer-Deserializer 所以,只需修复AvroSerDe中的拼写错误,然后重试。