1.安装
1.1安装zookeeper(单机)
安装包下载镜像地址:http://centos.ustc.edu.cn/apache/zookeeper/
测试成功下载的版本为apache-zookeeper-3.5.8-bin.tar.gz
1.1.1编辑zookeeper的配置文件
1.进入conf目录:
[root@localhost local]# cd zookeeper-3.5.8-bin/conf
2. 将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名)
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
3. 进入zoo.cfg文件进行编辑
[root@localhost conf]# vim zoo.cfg
4. 按 i 进入编辑模式,修改以下内容:
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
1.1.2启动zookeeper
1.进入bin目录,并启动zookeep。如果不是在bin目录下执行,启动zookeeper时会报错: bash: ./zkServer.sh: No such file or directory
注意: ./zkServer.sh start 前面的 . 不可忽略。
[root@localhost local]# cd /usr/local/zookeeper-3.4.13/bin
[root@localhost bin]# ./zkServer.sh start
2.启动成功效果如下:
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.13/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED
3.zookeeper的服务端启动后,还需要启动zookeeper的客户端:
[root@localhost bin]# ./zkCli.sh
1.2安装kafka(单机)
安装包下载镜像地址:http://centos.ustc.edu.cn/apache/kafka/
测试成功下载的版本为kafka_2.12-2.2.2.tgz
参考博客:https://www.cnblogs.com/toutou/p/linux_install_kafka.html
1.2.1配置server.properties
默认配置
############################# Socket Server Settings #############################
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = security_protocol://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
#listeners=PLAINTEXT://:9092
# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
#advertised.listeners=PLAINTEXT://your.host.name:9092
修改为
############################# Socket Server Settings #############################
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = security_protocol://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://:9092
# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
advertised.listeners=PLAINTEXT://47.114.171.128:9092
1.2.2启动kafka
1. 启动ZooKeeper
./zkServer.sh start
注意,需要先启动ZooKeeper再启动kafka
2 启动kafka
bin/kafka-server-start.sh config/server.properties
3 创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic demo
4 查询topic列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
5查看topic信息
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic demo
6 删除topic
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic demo
7 停止kafka
bin/kafka-server-stop.sh config/server.properties
1.3 终端测试
1.3.1 启动生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic demo
从上面的语法,生产者命令行客户端需要两个主要参数 -代理列表 - 我们要发送邮件的代理列表。 在这种情况下,我们只有一个代理。 Config / server.properties文件包含代理端口ID,因为我们知道我们的代理正在侦听端口9092,因此您可以直接指定它。主题名称:demo。
1.3.2 启动消费者
为了方便测试,另启一个sheel窗口 这样效果更明显。需要注意的是旧版本和新版本的命令是不一样的
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic demo --from-beginning
报错提示: zookeeper is not a recognized option
发现在启动的时候说使用 --zookeeper是一个过时的方法,最新的版本中命令如下:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic demo --from-beginning