![](https://img-blog.csdnimg.cn/52091e66e2474d33b683d7ce4f88e9e7.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
bigdatav013——kafka
BigDatakafka
yanqi_vip
strove with none, for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
展开
-
CC00001.kafka——|Hadoop&kafka.V01|——|kafka.v01|报错处理&内存不足|
附录一:报错处理一:### --- 报错现象:[root@hadoop01 ~]# kafka-server-start.sh /opt/yanqi/servers/kafka_2.12/config/server.propertiesJava HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000...原创 2022-04-09 13:45:00 · 64 阅读 · 0 评论 -
CC00002.kafka——|Hadoop&kafka.V02|——|kafka.v02|基本架构|核心概念.v01|
一、概念和基本架构### --- [kafka架构与实战]~~~ [kafka介绍]~~~ [kafka优势]~~~ [kafka应用场景]~~~ [kafka基本架构]~~~ [kafka核心概念]### --- Kafka介绍~~~ Kafka是最初由Linkedin公司开发,~~~ 是一个分布式、分...原创 2022-04-09 13:46:00 · 83 阅读 · 0 评论 -
CC00003.kafka——|Hadoop&kafka.V03|——|kafka.v03|基本架构|核心概念.v02|
一、基本架构### --- 消息和批次~~~ # Kafka的数据单元称为消息。~~~ 可以把消息看成是数据库里的一个“数据行”或一条“记录”。消息由字节数组组成。~~~ # 消息有键,键也是一个字节数组。~~~ 当消息以一种可控的方式写入不同的分区时,会用到键。~~~ # 为了提高效率,消息被分批写入Kafka。~~~ ...原创 2022-04-09 13:47:00 · 50 阅读 · 0 评论 -
CC00004.kafka——|Hadoop&kafka.V04|——|kafka.v04|基本架构|核心概念.v03|
一、核心概念### --- Producer:生产者创建消息。~~~ 该角色将消息发布到Kafka的topic中。~~~ broker接收到生产者发送的消息后,broker将该消息追加到当前用于追加数据的segment 文件中。~~~ # 一般情况下,一个消息会被发布到一个特定的主题上。~~~ 默认情况下通过轮询把消息均衡地分布到主题的所有分...原创 2022-04-09 13:47:00 · 76 阅读 · 0 评论 -
CC00005.kafka——|Hadoop&kafka.V05|——|kafka.v05|单机模式部署|
一、Kafka安装与配置:Java环境为前提### --- [kafka架构与实战]~~~ [部署Java.v8u231]~~~ [zookeeper.v3.4.14]~~~ [kafka2.12-1.0.2]### --- 查看自带的openjdk~~~ # 查看系统自带的jdk环境[root@hadoop ~]# rpm -qa...原创 2022-04-09 13:48:00 · 76 阅读 · 0 评论 -
CC00006.kafka——|Hadoop&kafka.V06|——|kafka.v06|生产与消费.v01|
一、kakfa生产与消费:验证zookeeper和kafka状态### --- 验证zookeeper状态[root@hadoop ~]# zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/yanqi/servers/zookeeper/bin/../conf/zoo.cfgMode: ...原创 2022-04-09 13:48:00 · 64 阅读 · 0 评论 -
CC00007.kafka——|Hadoop&kafka.V07|——|kafka.v07|生产与消费.v02|
一、Kafka开发实战### --- [kafka架构与实战]~~~ [kakfa开发实战_消息发送]~~~ [kafka开发实战_消息消费]### --- 消息的发送与接收~~~ 生产者主要的对象有: KafkaProducer , ProducerRecord 。~~~ 其中KafkaProducer 是用于发送消息的类, Pro...原创 2022-04-09 13:49:00 · 56 阅读 · 0 评论 -
CC00008.kafka——|Hadoop&kafka.V08|——|kafka.v08|生产与消费.v03|
一、创建maven工程:创建maven项目### --- 将pom.xml下添加成pom <packaging>pom</packaging>### --- 删除src目录,创建目录模块~~~ ——>项目下面——>右键——>new module——>编辑如下内容——>finish——>...原创 2022-04-09 13:49:00 · 66 阅读 · 0 评论 -
CC00009.kafka——|Hadoop&kafka.V09|——|kafka.v09|生产与消费.v04|
一、kafka开发实战_消息者消费### --- kafka消费消息~~~ 编程代码package com.yanqi.kafka.demo.consumer;import org.apache.kafka.clients.consumer.ConsumerConfig;import org.apache.kafka.clients.consumer.Consum...原创 2022-04-09 13:49:00 · 70 阅读 · 0 评论 -
CC00010.kafka——|Hadoop&kafka.V10|——|kafka.v10|生产与消费.v05|模拟消息推送偏移量|
一、消费者实验代码### --- [kafka架构与实战]~~~ [kakfa开发实战_消息发送]~~~ [kafka开发实战_消息消费]~~~ [kafka开发实战_消息推送偏移量]### --- 消费者:MyProducer2package com.yanqi.kafka.demo.producer;import org.apache...原创 2022-04-09 13:50:00 · 85 阅读 · 0 评论 -
CC00011.kafka——|Hadoop&kafka.V11|——|kafka.v11|spring_kafka实战.v01|
一、SpringBoot_kafka实战:SpringBoot Kafka### --- 创建spring_boot模块~~~ ——>在kafka_demo右键——>new module——>Spring Initializr——>Next~~~ ——>填写NewModule信息——>Next~~~ ——>依赖...原创 2022-04-09 13:51:00 · 75 阅读 · 0 评论 -
CC00012.kafka——|Hadoop&kafka.V12|——|kafka.v12|spring_kafka实战.v02|
一、spring_boot编程代码实现### --- Demo02SpringbootApplication.javapackage com.yanqi.kafka.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.Spri...原创 2022-04-09 13:51:00 · 77 阅读 · 0 评论 -
CC00013.kafka——|Hadoop&kafka.V13|——|kafka.v13|spring_kafka实战.v03|
一、kafkaAutoConfiguration配置;创建新的主题:kafkaAutoConfiguration配置二、新建主题,可以通过configuration配置package com.yanqi.kafka.demo.config;import org.apache.kafka.clients.admin.NewTopic;import org.apac...原创 2022-04-09 13:52:00 · 70 阅读 · 0 评论 -
CC00014.kafka——|Hadoop&kafka.V14|——|kafka.v14|服务端参数配置|
一、服务端参数配置### --- 服务端参数配置~~~ $KAFKA_HOME/config/server.properties文件中的配置。### --- zookeeper.connect~~~ 该参数用于配置Kafka要连接的Zookeeper/集群的地址。~~~ 它的值是一个字符串,使用逗号分隔Zookeeper的多个地址。Zookee...原创 2022-04-09 13:52:00 · 60 阅读 · 0 评论 -
CC00016.kafka——|Hadoop&kafka.V01|——|kafka.v01|数据生产流程剖析|生产者参数详解.v01|
一、生产者:消息发送### --- [kafka高级特性解析]~~~ [数据生产流程剖析]~~~ [生产者参数详解]~~~ [生产者参数代码案例]### --- 数据生产流程解析~~~ # Producer创建时,会创建一个Sender线程并设置为守护线程。~~~ 生产消息时,内部其实是异步流程,生产的消息先经过拦截器-&g...原创 2022-04-09 13:54:00 · 216 阅读 · 0 评论 -
CC00017.kafka——|Hadoop&kafka.V02|——|kafka.v02|数据生产流程剖析|生产者参数详解.v02|
一、生产者配置参数代码实现### --- 创建maven项目:demo-04-kafka-properties~~~ 配置pom.xml文件;导入依赖 <dependencies> <dependency> <groupId>org.apache.kafka</groupId>...原创 2022-04-09 13:54:00 · 58 阅读 · 0 评论 -
CC00018.kafka——|Hadoop&kafka.V03|——|kafka.v03|序列化器剖析|
一、序列化器剖析### --- 序列化器~~~ 由于Kafka中的数据都是字节数组,在将消息发送到Kafka之前需要先将数据序列化为字节数组。~~~ 序列化器的作用就是用于序列化要发送的消息的。~~~ Kafka使用org.apache.kafka.common.serialization.Serializer 接口用于定义序列化器,~~~ ...原创 2022-04-09 13:54:00 · 229 阅读 · 0 评论 -
CC00019.kafka——|Hadoop&kafka.V04|——|kafka.v04|自定义序列化器|
一、自定义序列化器### --- 自定义序列化器~~~ 数据的序列化一般生产中使用avro。~~~ 自定义序列化器需要实现org.apache.kafka.common.serialization.Serializer<T>接口,~~~ 并实现其中的serialize 方法。### --- 编程代码实现~~~ 创建maven...原创 2022-04-09 13:55:00 · 69 阅读 · 0 评论 -
CC00020.kafka——|Hadoop&kafka.V05|——|kafka.v05|分区器剖析.v01|
一、分区器剖析### --- 分区器~~~ # 默认(DefaultPartitioner)分区计算:~~~ 如果record提供了分区号,则使用record提供的分区号~~~ 如果record没有提供分区号,则使用key的序列化后的值的hash值对分区数量取模~~~ 如果record没有提供分区号,也没有提供key,则使用轮询的方式分配分区...原创 2022-04-09 13:55:00 · 71 阅读 · 0 评论 -
CC00021.kafka——|Hadoop&kafka.V06|——|kafka.v06|分区器剖析.v02|
一、官方封装类的实现### --- 包org.apache.kafka.clients.producer.internals 中分区器的默认实现:package org.apache.kafka.clients.producer.internals;import java.util.List;import java.util.Map;import java.util.con...原创 2022-04-09 13:56:00 · 70 阅读 · 0 评论 -
CC00022.kafka——|Hadoop&kafka.V07|——|kafka.v07|拦截器剖析.v01|
一、拦截器剖析### --- 拦截器~~~ # Producer拦截器(interceptor)~~~ 和Consumer端Interceptor是在Kafka 0.10版本被引入的,~~~ 主要用于实现Client端的定制化控制逻辑。~~~ # 对于Producer而言,~~~ Interceptor使得用户在消息发送前以及Pro...原创 2022-04-09 13:56:00 · 52 阅读 · 0 评论 -
CC00023.kafka——|Hadoop&kafka.V08|——|kafka.v08|拦截器剖析.v02|
一、实现ProducerInterceptor接口### --- 消息实体类:package cn.yanqi.kafka.demo.entity;public class User { private Integer userId; private String username; public Integer getUserId() { ...原创 2022-04-09 13:57:00 · 78 阅读 · 0 评论 -
CC00024.kafka——|Hadoop&kafka.V09|——|kafka.v09|生产者原理剖析.v01|
一、原理剖析### --- [kafka高级特性解析]~~~ [生产者原理剖析]~~~ [生产者参数配置]二、原理剖析### --- 由上图可以看出:KafkaProducer有两个基本线程:~~~ # 主线程:~~~ 负责消息创建,拦截器,序列化器,分区器等操作,并将消息追加到消息收集器RecoderAccumu...原创 2022-04-09 13:57:00 · 70 阅读 · 0 评论 -
CC00025.kafka——|Hadoop&kafka.V10|——|kafka.v10|生产者原理剖析.v02|
一、生产者参数配置补充:参数设置方式:二、补充参数:参数名称描述retry.backoff.ms在向一个指定的主题分区重发消息的时候,重试之间的等待时间。比如3次重试,每次重试之后等待该时间长度,再接着重试。在一些失败的场景,避免了密集循环的重新发送请求。long型值,默认100。可选值:[0,...]retriesretri...原创 2022-04-09 13:58:00 · 67 阅读 · 0 评论 -
CC00026.kafka——|Hadoop&kafka.V11|——|kafka.v11|消费者|消费组|心跳机制.v01|
一、概念入门### --- [kafka高级特性解析]~~~ [消费者/消费组] ~~~ [心跳机制]### --- 消费者、消费组~~~ # 消费者从订阅的主题消费消息,~~~ 消费消息的偏移量保存在Kafka的名字是__consumer_offsets 的主题中。~~~ 消费者还可以将自己的偏移量存储到Zookeepe...原创 2022-04-09 13:59:00 · 62 阅读 · 0 评论 -
CC00027.kafka——|Hadoop&kafka.V12|——|kafka.v12|消费者|消费组|心跳机制.v02|
一、心跳机制二、消费者宕机,退出消费组,触发再平衡,重新给消费组中的消费者分配分区。### --- 由于broker宕机,主题X的分区3宕机,此时分区3没有Leader副本,触发再平衡,~~~ 消费者4没有对应的主题分区,则消费者4闲置。### --- Kafka 的心跳是 Kafka ...原创 2022-04-09 13:59:00 · 99 阅读 · 0 评论 -
CC00028.kafka——|Hadoop&kafka.V13|——|kafka.v13|消费者参数详解|
一、消费者参数详解:消息接收:必要参数配置参数说明bootstrap.servers向Kafka集群建立初始连接用到的host/port列表。客户端会使用这里列出的所有服务器进行集群其他服务器的发现,而不管是否指定了哪个服务器用作引导。这个列表仅影响用来发现集群所有服务器的初始主机。字符串形式:host1:port1,host2:port2,...由于这组服务器仅...原创 2022-04-09 14:00:00 · 61 阅读 · 0 评论 -
CC00029.kafka——|Hadoop&kafka.V14|——|kafka.v14|订阅剖析|
一、[订阅剖析:订阅### --- 主题和分区~~~ # Topic,Kafka用于分类管理消息的逻辑单元,类似与MySQL的数据库。~~~ Partition,是Kafka下数据存储的基本单元,这个是物理上的概念。~~~ 同一个topic的数据,会被分散的存储到多个partition中,~~~ 这些partition可以在同一台机器上,也可...原创 2022-04-09 14:00:00 · 56 阅读 · 0 评论 -
CC00030.kafka——|Hadoop&kafka.V15|——|kafka.v15|反序列化剖析|
一、反序列化剖析### --- 反序列化~~~ Kafka的broker中所有的消息都是字节数组,消费者获取到消息之后,~~~ 需要先对消息进行反序列化处理,然后才能交给用户程序消费处理。### --- 消费者的反序列化器包括key的和value的反序列化器。key.deserializervalue.deserializerIntegerDese...原创 2022-04-09 14:01:00 · 156 阅读 · 0 评论 -
CC00031.kafka——|Hadoop&kafka.V16|——|kafka.v16|自定义反序列化|
一、自定义反序列化### --- 创建一个maven项目:demo-08-customDeserializer~~~ # 添加pom.xml依赖 <dependencies> <dependency> <groupId>org.apache.kafka</groupId> ...原创 2022-04-09 14:01:00 · 70 阅读 · 0 评论 -
CC00032.kafka——|Hadoop&kafka.V17|——|kafka.v17|位移提交剖析|
一、位移提交### --- 位移提交~~~ Consumer需要向Kafka记录自己的位移数据,这个汇报过程称为提交位移(Committing Offsets)~~~ Consumer 需要为分配给它的每个分区提交各自的位移数据~~~ 位移提交的由Consumer端负责的,Kafka只负责保管。__consumer_offsets~~~ 位移...原创 2022-04-09 14:02:00 · 59 阅读 · 0 评论 -
CC00033.kafka——|Hadoop&kafka.V18|——|kafka.v18|消费者位移管理.v01|
一、消费者位移管理### --- 消费者位移管理~~~ Kafka中,消费者根据消息的位移顺序消费消息。~~~ 消费者的位移由消费者管理可以存储于zookeeper中也可以存储于Kafka主题__consumer_offsets中。~~~ Kafka提供了消费者API,让消费者可以管理自己的位移。二、API如下:Ka...原创 2022-04-09 14:03:00 · 64 阅读 · 0 评论 -
CC00034.kafka——|Hadoop&kafka.V19|——|kafka.v19|消费者位移管理.v02|
一、消费者位移管理数据准备### --- 准备数据~~~ # 生成消息文件[root@hadoop ~]# for i in `seq 60`; do echo "hello yanqi $i" >> nm.txt; done~~~ # 创建主题,三个分区,每个分区一个副本[root@hadoop ~]# kafka-topics.sh --...原创 2022-04-09 14:03:00 · 74 阅读 · 0 评论 -
CC00035.kafka——|Hadoop&kafka.V20|——|kafka.v20|再均衡剖析|
一、再均衡剖析### --- 再均衡~~~ # 重平衡可以说是kafka为人诟病最多的一个点了。~~~ 重平衡其实就是一个协议,它规定了如何让消费者组下的所有消费者来分配topic中的每一个分区。~~~ 比如一个topic有100个分区,一个消费者组内有20个消费者,~~~ 在协调者的控制下让组内每一个消费者分配到5个分区,这个分配的过程就是...原创 2022-04-09 14:03:00 · 57 阅读 · 0 评论 -
CC00036.kafka——|Hadoop&kafka.V21|——|kafka.v21|消费者拦截器实验案例.v01|
一、消费者拦截器### --- 消费者拦截器~~~ 消费者在拉取了分区消息之后,要首先经过反序列化器对key和value进行反序列化处理。~~~ 处理完之后,~~~ 如果消费端设置了拦截器,则需要经过拦截器的处理之后,才能返回给消费者应用程序进行处理。~~~ 如果拦截器是null,表示没有配置消费者拦截if (fetcher.sendF...原创 2022-04-09 14:04:00 · 97 阅读 · 0 评论 -
CC00037.kafka——|Hadoop&kafka.V22|——|kafka.v22|消费者拦截器实验案例.v02|
一、创建一个maven项目:demo-09-kafka-consumerInterceptors### --- 添加pom.xml依赖 <dependencies> <dependency> <groupId>org.apache.kafka</groupId> ...原创 2022-04-09 14:04:00 · 67 阅读 · 0 评论 -
CC00038.kafka——|Hadoop&kafka.V23|——|kafka.v23|消费者拦截器参数配置|
一、消费者拦截器参数配置:消费者参数配置补充配置项说明bootstrap.servers建立到Kafka集群的初始连接用到的host/port列表。客户端会使用这里指定的所有的host/port来建立初始连接。这个配置仅会影响发现集群所有节点的初始连接。形式:host1:port1,host2:port2...这个配置中不需要包含集群中所有的节点信息。最好不要配置...原创 2022-04-09 14:05:00 · 118 阅读 · 0 评论 -
CC00039.kafka——|Hadoop&kafka.V24|——|kafka.v24|消费组管理|
一、消费组管理:消费者组 (Consumer Group)### --- 什么是消费者组~~~ consumer group是kafka提供的可扩展且具有容错性的消费者机制。### --- 三个特性:~~~ 消费组有一个或多个消费者,消费者可以是一个进程,也可以是一个线程~~~ group.id是一个字符串,唯一标识一个消费组~~~ ...原创 2022-04-09 14:06:00 · 338 阅读 · 0 评论 -
CC00040.kafka——|Hadoop&kafka.V25|——|kafka.v25|主题管理参数说明|
一、主题管理参数说明:使用kafka-topics.sh脚本:选项说明-config<String:name=value>为创建的或修改的主题指定配置信息。支持下述配置条目:cleanup.policycompression.typedelete.retention.msfile.delete.delay.msflush.messagesflush.m...原创 2022-04-09 14:06:00 · 62 阅读 · 0 评论 -
CC00041.kafka——|Hadoop&kafka.V26|——|kafka.v26|主题管理.v01|
一、主题管理:创建主题### --- 方案一:创建主题~~~ # 创建主题[root@hadoop ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --create --topic topic_x \--partitions 3 --replication-factor 1### --- 查看创建的...原创 2022-04-09 14:07:00 · 78 阅读 · 0 评论