Kafka(ZK)安装部署

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32297447/article/details/80792077
小结:
      本篇博客,介绍三种安装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并解压到指定目录
$ wget http://www-eu.apache.org/dist/zookeeper/zookeeper-3.5.1-alpha/zookeeper-3.5.1-alpha.tar.gz$ 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=$PATH:$ZOOKEEPER_HOME/bin

Zookeeper 启动停止命令
$ zkServer.sh start$ 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
配置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-server-start.sh $KAFKA_HOME/config/server.properties

打印的日志信息没有报错,可以看到如下信息
[Kafka Server 0], started (kafka.server.KafkaServer)

但是并不能保证Kafka已经启动成功,输入jps查看进程,如果可以看到Kafka进程,表示启动成功
[hadoop@Master ~]$ jps9173 Kafka9462 Jps8589 QuorumPeerMain[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
拷贝server.properties三份
[hadoop@Master ~]$ cd /opt/kafka/config[hadoop@Master config]$ cp server.properties server-1.properties [hadoop@Master config]$ cp server.properties server-2.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-server-start.sh $KAFKA_HOME/config/server-1.properties$ kafka-server-start.sh $KAFKA_HOME/config/server-2.properties$ kafka-server-start.sh $KAFKA_HOME/config/server-3.properties

查看进程
[hadoop@Master ~]$ jps11905 Kafka11619 Kafka8589 QuorumPeerMain12478 Jps12191 Kafka[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



猜你喜欢

转载自blog.csdn.net/qq_32297447/article/details/80792077