1.Apache Kafka 基本概念
2.Kafka 的安装
3. 基本工具创建 Topic
本文基于 centos7, Apache Kafka 0.11.0
Apache Kafka 是一个发布 / 订阅的消息系统,于 2009 年源自 Linkedin,并与 2011 年开源。在架构方面,Kafka 类似于其他的消息系统(ActiveMQ,RabbitMQ)。但是 Kafka 有诸多的特性使得越来越流行:
Kafka 在实时数据处理方面的应用场景越来越多
1. 安装 jdk
- [root@eb2c2d938924 / ]#yum install java - 1.8.0 - openjdk.x86_64
2. 下载 kafka_2.12-0.11.0.0.tgz 到 / tmp 下
- [root@eb2c2d938924 /]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.11.0.0/kafka_2.12-0.11.0.0.tgz -P /tmp
3. 解压压缩文件到 / opt 目录下
- [root@eb2c2d938924 / ]#tar - xvzf / tmp / kafka_2.12 - 0.11.0.0.tgz - C / opt /
4. 解压后的目录结构如下
- [root@eb2c2d938924 kafka_2.12-0.11.0.0]# pwd
- /opt/kafka_2.12-0.11.0.0
- [root@eb2c2d938924 kafka_2.12-0.11.0.0]# ls
- LICENSE NOTICE bin config libs site-docs
- [root@eb2c2d938924 kafka_2.12-0.11.0.0]#
Kafka 能够以 3 种方式部署集群
本次仅以第一种方式部署。启动 Kafka 需要两步:
Kafka 使用 ZooKeeper 来存储集群元数据和 Consumer 信息。因此,有两种选项:
第一,独立部署 ZooKeeper 应用并配置 Kafka 集群到该 ZooKeeper;
第二,使用 Kafka 自带的 ZooKeeper
本文选择使用 Kafka 自带的 ZooKeeper
3.1 启动 ZooKeeper
- [root@eb2c2d938924 kafka_2.12-0.11.0.0]# bin/zookeeper-server-start.sh config/zookeeper.properties
- OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
- [2017-08-10 14:02:29,426] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
- ...
- [2017-08-10 14:02:29,491] INFO minSessionTimeout set to -1 (org.apache.zookeeper.server.ZooKeeperServer)
- [2017-08-10 14:02:29,491] INFO maxSessionTimeout set to -1 (org.apache.zookeeper.server.ZooKeeperServer)
- [2017-08-10 14:02:29,501] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)
ZooKeeper 成功启动,并绑定到端口 2181。该端口是 ZooKeeper 的默认端口,可以通过编辑文件 config/zookeeper.properties 中的 clientPort 来修改监听端口。
3.2 启动 Kafka Broker
- [root@eb2c2d938924 kafka_2.12-0.11.0.0]# bin/kafka-server-start.sh config/server.properties
- OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
- [2017-08-10 14:11:58,741] INFO KafkaConfig values:
- .....
- [2017-08-10 14:12:00,385] INFO Kafka version : 0.11.0.0 (org.apache.kafka.common.utils.AppInfoParser)
- [2017-08-10 14:12:00,385] INFO Kafka commitId : cb8625948210849f (org.apache.kafka.common.utils.AppInfoParser)
- [2017-08-10 14:12:00,386] INFO [Kafka Server 0], started (kafka.server.KafkaServer)
4.1 创建一个 Topic 名称为 HelloWorld
- [root@eb2c2d938924 kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 \
- > --partitions 1 --topic HelloWorld
校验 Topic 是否创建成功
- [root@Server1 kafka_2.12-0.11.0.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181
- HelloWorld
4.2 启动一个 Producer 并发送消息
可以使用 Kafka 命令行客户端(获取标准命令行输入并一 Message 形式发出)发送消息到 Kafka 集群。默认情况下,每行会单独算作一次消息发出。下例通过该命令行终端发送消息到 HelloWorld 这个 Topic,命令如下:
- [root@Server1 kafka_2.12-0.11.0.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic HelloWorld
- >hello world!
- >this is the first greating
- >
4.3 启动一个 Consumer 并接受消息
跟 4.2 中类似,同样可以使用 Kafka 命令行终端来启动一个 Consumer(格式化消息到标准输出),命令如下
- [root@Server1 kafka_2.12-0.11.0.0]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topicelloWorld --from-beginning
- hello world!
- this is the first greating
本文展示了如何一步一步安装 Kafka 到 Linux,涵盖如何下载,启动 ZooKeeper/Kafka,发送和接受来自 Kafka 服务器的消息
来源: http://www.cnblogs.com/qizhelongdeyang/p/7341954.html