Kafka
大数据学习与分享
【微信公众号:大数据学习与分享】专注于大数据领域常用技术,如Spark、Hadoop、Hive、HBase、Kafka、Zookeeper等技术的使用、实战技巧、源码解读,语言主要以Java和Scala为主
展开
-
Kafka集群消息积压问题及处理策略
通常情况下,企业中会采取轮询或者随机的方式,通过Kafka的producer向Kafka集群生产数据,来尽可能保证Kafk分区之间的数据是均匀分布的。在分区数据均匀分布的前提下,如果我们针对要处理的topic数据量等因素,设计出合理的Kafka分区数量。对于一些实时任务,比如Spark Streaming/Structured-Streaming、Flink和Kafka集成的应用,消费端不存在长时间"挂掉"的情况即数据一直在持续被消费,那么一般不会产生Kafka数据积压的情况。但是这些都是有前提的,当一原创 2020-12-10 09:22:52 · 3845 阅读 · 0 评论 -
Kafka分区分配策略(Partition Assignment Strategy)
众所周知,Apache Kafka是基于生产者和消费者模型作为开源的分布式发布订阅消息系统(当然,目前Kafka定位于an open-source distributed event streaming platform),由Scala和Java编写。Kafka提供了类似于JMS的特性,但设计上又有很大区别,它不是JMS规范的实现,如Kafka允许多个消费者主动拉取数据,而在JMS中只有点对点模式消费者才会主动拉取数据。Kafka producer在向Kafka集群发送消息时,需要指定topic,Kaf原创 2020-09-23 22:54:05 · 1597 阅读 · 0 评论 -
java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.<init>(Ljava/io/InputStream;Z)V
1. 现象在利用Spark和Kafka处理数据时,有时会同时在maven pom中引入Spark和Kafka的相关依赖。但是当利用Spark SQL处理数据生成的DataSet/DataFrame进行collect或者show等操作时,抛出以下异常信息:in stage 3.0 (TID 403, localhost, executor driver): java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.<init&g原创 2020-08-31 16:37:06 · 2214 阅读 · 0 评论 -
Kafka高性能揭秘 —— sequence IO、PageCache、SendFile的应用详解
大家都知道Kafka是将数据存储于磁盘的,而磁盘读写性能往往很差,但Kafka官方测试其数据读写速率能达到600M/s,那么为什么Kafka性能会这么高呢?首先producer往broker发送消息时,采用batch的方式即批量而非一条一条的发送,这种方式可以有效降低网络IO的请求次数,提升性能。此外这些批次消息会"暂存"在缓冲池中,避免频繁的GC问题。批量发送的消息可以进行压缩并且传输的时候可以进行高效的序列化,从而减少数据大小。Kafka除了在producer发送消息方面做了很多优化,还有很多其他的原创 2020-06-14 22:37:20 · 788 阅读 · 0 评论 -
详细解析SparkStreaming和Kafka集成的两种方式的区别和优劣
spark streaming是基于微批处理的流式计算引擎,通常是利用spark core或者spark core与spark sql一起来处理数据。在企业实时处理架构中,通常将spark streaming和kafka集成作为整个大数据处理架构的核心环节之一。针对不同的spark、kafka版本,集成处理数据的方式分为两种:Receiver based Approach和Direct Approach,不同集成版本处理方式的支持,可参考下图:Receiver based Approach基于rec原创 2020-06-10 20:13:49 · 590 阅读 · 0 评论 -
Kafka作为分布式消息系统的系统解析
Kafka概述Apache Kafka由Scala和Java编写,基于生产者和消费者模型作为开源的分布式发布订阅消息系统。它提供了类似于JMS的特性,但设计上又有很大区别,它不是JMS规范的实现,如Kafka允许多个消费者主动拉取数据,而在JMS中只有点对点模式消费者才会主动拉取数据。Kafka对消息保存时根据topic进行归类,发送消息者称为producer,消息接收者称为consumer。Kafka集群由多个Kafka实例组成,每个实例称为broker。并且Kafka集群基于zookeeper保存一原创 2020-06-02 19:18:24 · 360 阅读 · 0 评论 -
分布式流平台Kafka
提到Kafka很多人的第一印象就是它是一个消息系统,但Kafka发展至今,它的定位已远不止于此,而是一个分布式流处理平台。对于一个流处理平台通常具有三个关键能力:1.发布和订阅消息流,在这一点上它与消息队列或企业消息系统类似2.以容错的持久化方式存储消息流3.在消息流产生时处理它们目前,Kafka通常应用于两大类应用:1.构建实时的流数据管道,可靠地在系统和应用程序之间获取数据2.构建实时流的应用程序,对数据流进行转换或响应下面我们来一起看一下,Kafka是如何实现以上所说的功能的?首先了解原创 2020-05-31 19:20:46 · 308 阅读 · 0 评论