菜鸟要飞

Kafka学习(一)安装

2018-07-05  本文已影响7人  万总有点菜

简介

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

Kafka 是一种高吞吐量的分布式发布订阅消息系统,有如下特性:

准备

wget http://mirrors.hust.edu.cn/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz
tar -zvxf kafka_2.12-1.1.0.tgz
192.168.1.211        master
192.168.1.212        slave1
192.168.1.213        slave2

修改配置

进入Kafka的config目录,修改server.properties

-打开监听端口
listeners=PLAINTEXT://hostname:9092(部署所在机器的hostname)

-修改log的目录
在Kafka的主目录下,创建logs文件夹mkdir logs
修改log目录
log.dirs=/home/kafka_2.12-1.1.0/logs

-配置Zookeeper连接信息
zookeeper.connect=192.168.1.201:2181,192.168.1.202:2181,192.168.1.203:2181

启动

bin/kafka-server-start.sh config/server.properties &

Kafka常用命令

--zookeeper : zookeeper集群列表,用英文逗号分隔。可以不用指定zookeeper整个集群内的节点列表,只指定某个或某几个zookeeper节点列表也是可以的
--replication-factor : 复制数目,提供failover机制;1代表只在一个broker上有数据记录,一般值都大于1,代表一份数据会自动同步到其他的多个broker,防止某个broker宕机后数据丢失。
--partitions : 一个topic可以被切分成多个partitions。通过将topic的消息打散到多个分区并分布保存在不同的broker上实现了消息处理(不管是producer还是consumer)的高吞吐量。

-主题描述
bin/kafka-topics.sh --describe --zookeeper 192.168.1.201:2181,192.168.1.202:2181,192.168.1.203:2181 --topic HelloWorld

-发布消息到指定的主题
bin/kafka-console-producer.sh --broker-list master:9092,slave1:9092,slave2:9092 --topic HelloWorld

-消费指定的主题的消息
bin/kafka-console-consumer.sh --bootstrap-server master:9092,slave1:9092,slave2:9092 --from-beginning --topic HelloWorld

组内分区分配

consumer group下有两个consumer: A和B,当第三个成员加入时,kafka会触发rebalance并根据默认的分配策略重新为A、B和C分配分区,如下图所示:

topicA-0 表示主题A的一个标识为“0”的切片

上一篇 下一篇

猜你喜欢

热点阅读