分布式消息队列Kafka学习笔记

Kafka概述

a distributed streaming platform

Kafka架构和核心概念

producer, 生产者,生产馒头。

consumer, 消费者,吃馒头。

broker, 篮子。

topic, 主题,给馒头带一个标签,topica的馒头是给你吃的,topicb的馒头是给你弟弟吃。

Zookeeper集群部署

安装包解压

zookeeper配置文件修改

myid记录到数据文件夹

zookeeper分发到其他节点

配置环境变量

启动

export变量作用域解析

export A=1,定义的变量,会对自己所在的shell进程及子进程生效。

B=1,定义的变量,只对自己所在的shell进程生效。

在script.sh中定义的变量,在当前登陆的shell进程中,source script.sh时,脚本中定义的变量也会进入当前登陆的进程。

要在父进程shell可见,可source一下定义export变量的脚本文件,让当前shell可见。

Zookeeper集群启动和停止脚本,可先配置集群机器间的免密登录。

Kafka集群部署及使用

安装包解压

$KAFKA_HOME/config/server.properties修改,集群的每个节点的broker.id和host.name都需要修改。

Kafka集群启动和停止脚本

启动Kafka,。

创建topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

查看所有topic

bin/kafka-topics.sh --list --zookeeper localhost:2181

发送消息

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

消费消息

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

查看topic详细信息

整合Flume和Kafka完成实时数据的采集

在分布式日志收集框架Flume学习笔记的应用需求3中,将A服务器上的日志实时采集到B服务器,打印到控制台,通过整合Flume和Kafka,把logger sink改为kafka sink,这里的kafka sink是作为producer的角色,通过控制台起一个consumer进行消费来验证。

技术选型:

exec-memory-avro.conf: exec source + memory channel + avro sink

avro-memory-logger.conf: avro source + memory channel + kafka sink

整合Flume和Kafka完成实时数据的采集

验证,先启动avro-memory-kafka.conf,因为它监听192.168.169.100的44444端口,

在控制台启动消费者验证,

本文首发于steem,感谢阅读,转载请注明。

https://steemit.com/@padluo

微信公众号「数据分析」,分享数据科学家的自我修养,既然遇见,不如一起成长。

数据分析

读者交流电报群

https://t.me/sspadluo

知识星球交流群

知识星球读者交流群

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180302G14GHW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动