![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码解析
文章平均质量分 80
亮亮-AC米兰
这个人什么都没留下
展开
-
kafka源码解析之十一KafkaApis
KafkaApis真正负责内部request的业务逻辑,kafka_2.10-0.8.2.0目前支持11种request请求,具体的request类别在Broker处理的request的来源中已经提到,即下图:接下来主要叙述下各个不同request的来源,以及request的处理流程:class KafkaApis(val requestChannel: RequestChan原创 2016-04-05 21:36:24 · 5532 阅读 · 0 评论 -
Spark-Sql源码解析之八 Codegen
Codegen,动态字节码技术,那么什么是动态字节码技术呢?先看来一段代码,假设SparkPlan为Sortcase class Sort( sortOrder: Seq[SortOrder], global: Boolean, child: SparkPlan) extends UnaryNode { override def requiredChildDis原创 2016-08-12 13:06:58 · 6127 阅读 · 1 评论 -
Spark-Sql源码解析之七 Execute: executed Plan -> RDD[Row]
SparkPlan如何执行呢,SparkPlan是如何转变为RDD[Row]的呢?首先看一段代码:SQLContext sqlContext = new SQLContext(jsc);DataFrame dataFrame = sqlContext.parquetFile(parquetPath);dataFrame.registerTempTable(source);String s原创 2016-08-12 13:03:25 · 3311 阅读 · 0 评论 -
Spark-Sql源码解析之六 PrepareForExecution: spark plan -> executed Plan
在SparkPlan中插入Shuffle的操作,如果前后2个SparkPlan的outputPartitioning不一样的话,则中间需要插入Shuffle的动作,比分说聚合函数,先局部聚合,然后全局聚合,局部聚合和全局聚合的分区规则是不一样的,中间需要进行一次Shuffle。比方说sql语句:selectSUM(id) from test group by dev_chnid其从逻辑计划原创 2016-08-12 12:57:38 · 1623 阅读 · 0 评论 -
kafka源码解析Word版
免积分下载:http://download.csdn.net/detail/wl044090432/9487835目录内容:Kafka源码解析目录Kafka源码解析...1一. kafka诞生的背景... 21.1 kafka在LinkedIn内部的应用...31.2 它的主要设计目标:...31.3 为什么我们要使用消息系统:原创 2016-04-11 20:24:09 · 3088 阅读 · 3 评论 -
kafka源码解析之十六生产者流程(客户端如何向topic发送数据)
客户端向topic发送数据分为两种方式:1.异步,2同步。其配置为producer.type,如果为sync,则是同步发送;如果为async,则是异步发送。客户端代码如下:import kafka.javaapi.producer.Producer;import kafka.producer.KeyedMessage;import kafka.producer.ProducerConf原创 2016-04-11 19:48:58 · 7037 阅读 · 0 评论 -
kafka源码解析之十五客户端如何创建topic
主要存在两种方式:即自动创建还是手动创建。当配置auto.create.topics.enable=true时,则如果kafka发现该topic不存在的话,会按默认配置自动创建topic。当配置auto.create.topics.enable=false时,客户端需要提前创建好topic,才可以正确地往topic发送数据,创建topic的命令如下:bin/kafka-topics.sh --原创 2016-04-11 14:30:20 · 6928 阅读 · 0 评论 -
kafka源码解析之十四TopicConfigManager
当Kakfka的topic创建之后,需要中途修改该topic的属性的时候,可以通过在/brokers/config_changes上传配置信息,触发TopicConfigManager内部的监听函数来更改topic的属性。class TopicConfigManager(private val zkClient: ZkClient, priva原创 2016-04-11 13:42:29 · 1385 阅读 · 0 评论 -
kafka源码解析之十三KafkaHealthcheck
主要是在zk的/brokers/[0...N] 路径上建立该Broker的信息,并且该节点是ZK中的Ephemeral Node,当此Broker离线的时候,zk上对应的节点也就消失了,那么其它Broker可以及时发现该Broker的异常。class KafkaHealthcheck(private val brokerId: Int, privat原创 2016-04-11 13:41:23 · 1655 阅读 · 0 评论 -
kafka源码解析之十二KafkaController(上篇)
KafkaController比较复杂,准备花上中下三篇来介绍,其主要的内容如下:12.1 KafkaController成为leader的过程12.2 kafkaController的初始化(leader)12.3 KafkaController PartitionStateMachine12.4 KafkaController PartitionLeaderSelector原创 2016-04-11 09:17:03 · 3873 阅读 · 0 评论 -
kafka源码解析之十二KafkaController(下篇)
12.6 KafkaController内部的listenerKafkaControler(leader)通过在zk的不同目录建立各种listener来达到对topic的管理和维护,其在zk的目录结构和对应的listener如下:12.6.1 brokerChangeListener/** * This is the zookeeper listener that tri原创 2016-04-11 09:56:19 · 5146 阅读 · 0 评论 -
kafka源码解析之十二KafkaController(中篇)
12.3 KafkaController PartitionStateMachine它实现了topic的分区状态切换功能,Partition存在的状态如下:状态名状态存在的时间有效的前置状态NonExistentPartition1.partition重来没有被创建2.partition创建之后被删除原创 2016-04-11 09:29:47 · 3817 阅读 · 0 评论 -
kafka源码解析之七KafkaRequestHandlerPool
KafkaRequestHandlerPool的逻辑比较简单,就是开启num.io.threads个KafkaRequestHandler,每个KafkaRequestHandler从RequestChannel. requestQueue 接受request,然后把对应的response存进responseQueues(i)队列class KafkaRequestHandlerPool(原创 2016-03-26 16:24:37 · 2447 阅读 · 0 评论 -
kafka源码解析之六SocketServer
class SocketServer(val brokerId: Int, val host: String, val port: Int, val numProcessorThreads: Int, val maxQueuedRequests:原创 2016-03-26 15:40:01 · 2143 阅读 · 2 评论 -
kafka源码解析之三Broker的启动
正常启动kafka的命令如下:查看kafka-server-start.sh脚本:查看Kafka.Kafka类:object Kafka extends Logging { def main(args: Array[String]): Unit = { if (args.length != 1) { println("USAGE: java [原创 2016-03-26 14:18:49 · 4185 阅读 · 0 评论 -
kafka源码解析之目录索引
源码系列:kafka源码解析之一kafka诞生的背景kafka源码解析之二kafka内部的专业术语kafka源码解析之三Broker的启动kafka源码解析之四Broker的模块组成kafka源码解析之五Broker处理的request的来源kafka源码解析之六SocketServerkafka源码解析之七KafkaRequestH原创 2016-04-12 09:08:17 · 2087 阅读 · 1 评论 -
kafka源码解析之十七消费者流程(客户端如何获取topic的数据)
Kafka消费数据的角色分为普通消费者和高级消费者,其介绍如下:16.1 普通消费者特点:1)一个消息读取多次 2)在一个处理过程中只消费某个broker上的partition的部分消息 3)必须在程序中跟踪offset值 4)必须找出指定TopicPartition中的lead broker 5)必须处理broker的变动客户端编程必须按照以下步原创 2016-04-11 19:53:08 · 13814 阅读 · 0 评论 -
欢迎购买《Kafka源码解析与实战》
沉静了大半年终于把Kafka相关的知识整理了下,欢迎大家购买。购买方式:登陆京东,搜索关键字:Kafka源码解析与实战。或者点击此链接https://item.jd.com/12277714.html原创 2018-01-04 15:50:15 · 1614 阅读 · 0 评论