0

我正在创建一个avro serde用于存储 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 文件系统中,我都遇到了同样的错误。

4

1 回答 1

0

错误消息指出 Hive 找不到 SerDe Java 类。它甚至不费心阅读架构......

请注意,“SerDe”有一个大写字母 D,因为它代表 Serializer-Deserializer。
因此,只需修正您的错字并重AvroSerDe试。

于 2017-01-14T20:50:51.033 回答