kafka分区规则、flume对接Kafka等

1)kafka分区规则

粘性分区规则:队列满了或者到达时间限制,则换分区。

kafka分区规则、flume对接Kafka等_第1张图片
图片.png
kafka分区规则、flume对接Kafka等_第2张图片
图片.png

可见数据被发往2个分区(队列满了,则换分区):

kafka分区规则、flume对接Kafka等_第3张图片
图片.png
kafka分区规则、flume对接Kafka等_第4张图片
图片.png

每发完一条消息后,睡眠200ms;则会因为超时,而触发换分区:

kafka分区规则、flume对接Kafka等_第5张图片
图片.png

自定义分区器:

kafka分区规则、flume对接Kafka等_第6张图片
图片.png

测试代码(前5条数据发到1号分区,后5条数据发到0号分区):

图片.png
kafka分区规则、flume对接Kafka等_第7张图片
图片.png

输出:

kafka分区规则、flume对接Kafka等_第8张图片
图片.png

162的kafka客户端:

kafka分区规则、flume对接Kafka等_第9张图片
图片.png

2)producer端

简单的发送消息:

kafka分区规则、flume对接Kafka等_第10张图片
图片.png

kafka客户端收到消息:

kafka分区规则、flume对接Kafka等_第11张图片
图片.png

输出topic、partition、offset等具体信息:

kafka分区规则、flume对接Kafka等_第12张图片
图片.png

也在kafka客户端收到消息:

kafka分区规则、flume对接Kafka等_第13张图片
图片.png

以下2图,通过 /opt/module/kafka_2.11/bin/kafka-dump-log.sh --files 00000000000000000000.log --print-data-log
Dumping 00000000000000000000.log 命令 看到分区1内 正确存放了刚才发过来的消息

kafka分区规则、flume对接Kafka等_第14张图片
图片.png
kafka分区规则、flume对接Kafka等_第15张图片
图片.png

以下2图 异步发送时的输出:

kafka分区规则、flume对接Kafka等_第16张图片
图片.png
kafka分区规则、flume对接Kafka等_第17张图片
图片.png

下图 同步发送时 的输出:

kafka分区规则、flume对接Kafka等_第18张图片
图片.png

3)consumer端

kafka分区规则、flume对接Kafka等_第19张图片
图片.png
kafka分区规则、flume对接Kafka等_第20张图片
图片.png

异步提交offset:

kafka分区规则、flume对接Kafka等_第21张图片
图片.png

同步提交offset:

kafka分区规则、flume对接Kafka等_第22张图片
图片.png

bin/kafka-consumer-groups.sh -all-groups --all-topics --describe --bootstrap-server hadoop162:9092
查看消费者组(mygroup4)的offset:

kafka分区规则、flume对接Kafka等_第23张图片
图片.png

4)flume对接Kafka的简单实现

flume的配置文件:

kafka分区规则、flume对接Kafka等_第24张图片
图片.png

启动flume:

kafka分区规则、flume对接Kafka等_第25张图片
图片.png

启动nc,往flume写数据:

kafka分区规则、flume对接Kafka等_第26张图片
图片.png

kafka消费端,收到从flume传过来的数据:

kafka分区规则、flume对接Kafka等_第27张图片
图片.png

5)flume对接Kafka的数据分离

数据分离的逻辑如下(body含kafka的发往first分区,body含second的发往second分区,其他的event发往默认分区(third分区,在netcat-flume-interceptor.conf文件中配置了)):

图片.png

FlumeKafkaInterceptor类的代码:

kafka分区规则、flume对接Kafka等_第28张图片
图片.png
kafka分区规则、flume对接Kafka等_第29张图片
图片.png

打包上传:

kafka分区规则、flume对接Kafka等_第30张图片
图片.png

配置文件netcat-flume-interceptor.conf:

图片.png
kafka分区规则、flume对接Kafka等_第31张图片
图片.png

启动flume:

kafka分区规则、flume对接Kafka等_第32张图片
图片.png

启动flume成功:

kafka分区规则、flume对接Kafka等_第33张图片
图片.png

在nc发数据:

kafka分区规则、flume对接Kafka等_第34张图片
图片.png

first分区:

kafka分区规则、flume对接Kafka等_第35张图片
图片.png

second分区:

kafka分区规则、flume对接Kafka等_第36张图片
图片.png

third分区(默认分区):

kafka分区规则、flume对接Kafka等_第37张图片
图片.png

你可能感兴趣的:(kafka分区规则、flume对接Kafka等)