小结:
本篇博客,介绍三种安装Kafka的方式,分别为:单节点单Broker部署、单节点多Broker部署、集群部署(多节点多Broker)。实际生产环境中使用的是第三种方式,以集群的方式来部署Kafka。
Kafka强依赖ZK,如果想要使用Kafka,就必须安装ZK,Kafka中的消费偏置信息、kafka集群、topic信息会被存储在ZK中.
一、Kafka 单节点部署
Kafka中单节点部署又分为两种,一种为单节点单Broker部署,一种为单节点多Broker部署。因为是单节点的Kafka,所以在安装ZK时也只需要单节点即可。
ZooKeeper官网:http://zookeeper.apache.org/
下载Zookeeper并解压到指定目录
tar -zxvf zookeeper-3.5.1-alpha.tar.gz -c /opt/zookeeper
进入Zookeeper的config目录下
$ cd /opt/zookeeper/conf
拷贝zoo_sample.cfg文件重命名为zoo.cfg,然后修改dataDir属性
数据的存放目录dataDir=/home/hadoop/zkdata# 端口,默认就是2181clientPort=2181
配置环境变量
Zookeeper Environment Variableexport ZOOKEEPER_HOME=/opt/zookeeperexport PATH=ZOOKEEPER_HOME/bin
Zookeeper 启动停止命令
zkServer.sh stop
安装完Zookeeper后,输入命令启动后,jps中并没有查看到QuorumPeerMain进程,说明没有启动成功,进入Zookeeper的log目录下查看日志,发现报了一个错误,如下
AdminServer$AdminServerException: Problem starting AdminServer on address 0.0.0.0, port 8080 and command URL /commands
原因:zookeeper的管理员端口被占用
解决:笔者使用的zookeeper的版本为3.5.1,该版本中有个内嵌的管理控制台是通过jetty启动,会占用8080 端口,需要修改配置里的“admin.serverPort=8080”,默认8080没有写出来,只要改为一个没使用的端口即可,例如:admin.serverPort=8181
1.Kafka 单节点单Broker部署及使用
部署架构
配置Kafka
官网下载:http://kafka.apache.org/quickstart
配置kafka环境变量
进入kafka的config目录下,有一个server.properties,添加如下配置
broker的全局唯一编号,不能重复broker.id=0监听listeners=PLAINTEXT://:9092日志目录log.dirs=log.dirs=/home/hadoop/app/kafka/tmp/kafka-logs 配置zookeeper的连接(如果不是本机,需要该为ip或主机名)zookeeper.connect=localhost:2181
启动Zookeeper
[hadoop@Master ~]$ zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper/bin/../conf/zoo.cfgStarting zookeeper ... STARTED
启动Kafka
KAFKA_HOME/config/server.properties
打印的日志信息没有报错,可以看到如下信息
[Kafka Server 0], started (kafka.server.KafkaServer)
但是并不能保证Kafka已经启动成功,输入jps查看进程,如果可以看到Kafka进程,表示启动成功
[hadoop@Master ~] jps -m9472 Jps -m9173 Kafka /opt/kafka/config/server.properties8589 QuorumPeerMain /opt/zookeeper/bin/../conf/zoo.cfg
创建topic
[hadoop@Master ~]$ kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
参数说明:
–zookeeper:指定kafka连接zk的连接url,该值和server.properties文件中的配置项{zookeeper.connect}一样
–replication-factor:指定副本数量
–partitions:指定分区数量
–topic:主题名称
查看所有的topic信息
[hadoop@Master ~]$ kafka-topics.sh --list --zookeeper localhost:2181test
启动生产者
[hadoop@Master ~]$ kafka-console-producer.sh --broker-list localhost:9092 --topic test
启动消费者
[hadoop@Master ~]$ kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
2.Kafka 单节点多Broker部署及使用
部署架构
配置Kafka
参考官网:http://kafka.apache.org/quickstart
拷贝server.properties三份
[hadoop@Master ~] cp server.properties server-1.properties [hadoop@Master config] cp server.properties server-3.properties
修改server-1.properties文件
broker的全局唯一编号,不能重复broker.id=1 监听listeners=PLAINTEXT://:9093 日志目录log.dirs=/home/hadoop/kafka-logs-1
修改server-2.properties文件
修改server-3.properties文件
broker的全局唯一编号,不能重复broker.id=3 监听listeners=PLAINTEXT://:9094 日志目录log.dirs=/home/hadoop/kafka-logs-3
启动Zookeeper
[hadoop@Master ~]$ zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/zookeeper/bin/../conf/zoo.cfgStarting zookeeper ... STARTED
启动Kafka(分别启动server1、2、3)
KAFKA_HOME/config/server-1.propertiesKAFKA_HOME/config/server-2.propertiesKAFKA_HOME/config/server-3.properties
查看进程
[hadoop@Master ~] jps -m11905 Kafka /opt/kafka/config/server-2.properties11619 Kafka /opt/kafka/config/server-1.properties12488 Jps -m8589 QuorumPeerMain /opt/zookeeper/bin/../conf/zoo.cfg12191 Kafka /opt/kafka/config/server-3.properties
创建topic(指定副本数量为3)
[hadoop@Master ~]$ kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topicCreated topic "my-replicated-topic".
查看所有的topic信息
[hadoop@Master ~]$ kafka-topics.sh --list --zookeeper localhost:2181my-replicated-topictest
查看某个topic的详细信息
[hadoop@Master ~]$ kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topicTopic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs: Topic: my-replicated-topic Partition: 0 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
启动生产者
$ kafka-console-producer.sh --broker-list localhost:9093,localhost:9094,localhost:9095 --topic my-replicated-topic
启动消费者
$ kafka-console-consumer.sh --zookeeper localhost:2181 --topic my-replicated-topic --from-beginning
原文:https://blog.csdn.net/qq_32297447/article/details/80792077
版权声明:本文为博主原创文章,转载请附上博文链接!