李玉坤

个人博客

[Kafka] Kafka消息格式的演变

Kafka 0.7.x 消息格式、Kafka 0.8.x (0.9.x) 消息格式、Kafka 0.10.x 消息格式

用 Kafka 这么久,从来都没去了解 Kafka 消息的格式。今天特意去网上搜索了以下,发现这方面的资料真少,很多资料都是官方文档的翻译;而且 Kafka 消息支持压缩,对于压缩消息的格式的介绍更少。基于此,本文将以图文模式介绍 Kafka 0.7.x、0.8.x 以及 0.10.x 等版本 Message 格式,因为 Kafka 0.9.x 版本的消息格式和 0.8.x 一样,我就不单独......

[Kafka] Kafka如何将分区放置到不同的Broker中

熟悉 Kafka 的小伙伴肯定知道,每个主题有多个分区,每个分区会存在多个副本,本文今天要讨论的是这些副本是怎么样放置在 Kafka 集群的 Broker 中的。 大家可能在网上看过这方面的知识,网上对这方面的知识是千变一律,都是如下说明的: 为了更好的做负载均衡,Kafka尽量将所有的Partition均匀分配到整个集群上。Kafka分配Replica的算法如下: 将所有存活的N个Bro......

[Kafka] Kafka的副本机制

Kafka 复制机制

Kafka 复制机制Kafka 主题中的每个分区都有一个预写日志(write-ahead log),我们写入 Kafka 的消息就存储在这里面。这里面的每条消息都有一个唯一的偏移量,用于标识它在当前分区日志中的位置。如下图所示:Kafka 中的每个主题分区都被复制了 n 次,其中的 n 是主题的复制因子(replication factor)。这允许 Kafka 在集群服务器发生故障时自动切......

[Kafka] Kafka Producer是如何动态感知Topic分区数变化

 我们都知道,使用Kafka Producer往Kafka的Broker发送消息的时候,Kafka会根据消息的key计算出这条消息应该发送到哪个分区。默认的分区计算类是HashPartitioner,其实现如下: 12345class HashPartitioner(props: VerifiableProperties = null) extends Partitioner { ......

[Kafka]04 Kafka入门 四

Kafka 原生的 API、Spring Boot 使用 Kafka

使用 Kafka 原生的 API①消费者自动提交 定义自己的生产者: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546import org.apache.kafka.clients.producer.Callback;import org.apache.kafka.clien......

[Kafka]03 Kafka入门 三

集群搭建、Kafka 的操作、Kafka 的日志

我们在工作中,为了保证环境的高可用,防止单点,Kafka 都是以集群的方式出现的,下面就带领大家一起搭建一套 Kafka 集群环境。 我们在官网下载 Kafka,下载地址为:http://kafka.apache.org/downloads,下载我们需要的版本,推荐使用稳定的版本。 搭建集群①下载并解压 12345cd /usr/local/srcwget http://mirrors.tu......

[Kafka]02 Kafka入门 二

关键术语、工作原理和过程

Kafka 中的关键术语Topic:主题。在 Kafka 中,使用一个类别属性来划分消息的所属类,划分消息的这个类称为 Topic。Topic 相当于消息的分类标签,是一个逻辑概念。 物理上不同 Topic 的消息分开存储,逻辑上一个 Topic 的消息虽然保存于一个或多个 Broker 上但用户只需指定消息的 Topic 即可生产或消费数据而不必关心数据存于何处。 Partition:分区......

[Kafka]01 Kafka入门 一

Kafka 官网、设计目标、架构体系图、应用场景、高吞吐率原因、Kafka的优点、Kafka 于其他 MQ 对比、特性、Kafka的几种重要角色

较之传统的消息中间件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容错的特性,非常适合大规模消息处理应用程序。 Kafka 官网:http://kafka.apache.org/ Kafka 主要设计目标 以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间的访问性能。 高吞吐率。即使在非常廉价的商用......

[Hive] hive中的file_format

行存储和列存储在hdfs中的区别、hive中的file_format、orc格式、parquet格式

行存储和列存储在hdfs中的区别 hive中的file_format可以使用set hive.default.fileformat来查看和设置格式set hive.default.fileformat默认是TextFile file_format:【查看hive官方文档】 : SEQUENCEFILE 【文件比原始文本文件还要大;不适用】 | TEXTFILE – (Default......

[Hive] Hive面试题总结

一句话描述HiveHive是一个构建在Hadoop之上的数据仓库软件,它可以使已经存储的数据结构化,它提供类似sql的查询语句HiveQL对数据进行分析处理。 Hive将HQL转换为MapReduce的流程1、Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST Tree2、遍历AST Tree,抽象出查询的基本组成单元QueryBlock3、遍历Quer......