kafka avro序列化读写消息
avro是Hadoop的一个子项目,由Hadoop的创始人Doug Cutting领导开发的一种数据序列化系统。avro具有支持二进制的序列化方式具有丰富的数据结构,可以持久化数据,快速的处理大量数据等优点。kafka与avro的结合能更高效的处理大数据。
在使用avro之前,我们需要提前定义好Schema信息(Json格式),在本案例中,我们定义了一个用户行为对象,使用的数据来自阿里云天池公开数据集 :经过脱敏处理的淘宝用户数据,包括用户id、商品id、商品类别id、用户行为、时间戳。

创建Schema信息
{
"namespace": "kafka.bean.UserBehavior",
"type": "record",
"name": "Stock",
"fields": [
{"name": "userId", "type": "long"},
{"name": "itemId", "type": "long"},
{"name": "categoryId", "type": "long"},
{"name": "behavior", "type": "string"},
{"name": "timestamp", "type": "long"}
]
}
使用到的pom
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.8.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.twitter/bijection-core -->
<dependency>
<groupId>com.twitter</groupId>
<artifactId>bijection-core_2.11</artifactId>
<version>0.9.6<

本文介绍如何使用Avro进行数据序列化,并结合Kafka高效处理大数据。通过定义Schema,实现用户行为数据的序列化,使用Scala进行数据处理,最终通过Kafka生产者和消费者完成数据的读写。
最低0.47元/天 解锁文章
4297

被折叠的 条评论
为什么被折叠?



