zookeeper kafka手动部署

wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
[root@testceph ~]# tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local/
[root@testceph ~]# vi /etc/profile
增加下列两行
export ZK_HOME=/usr/local/zookeeper-3.4.13
export PATH=$ZK_HOME/bin:$PATH
[root@testceph ~]# source /etc/profile
[root@testceph ~]# cd /usr/local/zookeeper-3.4.13/
[root@testceph zookeeper-3.4.13]# cd conf/
[root@testceph conf]# mv zoo_sample.cfg zoo.cfg
[root@testceph conf]# cat /etc/hosts
192.168.229.133 testceph
192.168.229.130 redis1
192.168.229.131 redis2
[root@testceph conf]# vi zoo.cfg
dataDir = /usr/local/zookeeper-3.4.13/data
server.0=192.168.229.133:2888:3888
server.1=192.168.229.130:2888:3888
server.2=192.168.229.131:2888:3888

server.X=A:B:C
X-代表服务器编号
A-代表ip
B和C-代表端口,这个端口用来系统之间通信
[root@testceph conf]# cd ../
[root@testceph zookeeper-3.4.13]# mkdir data
[root@testceph zookeeper-3.4.13]# cd data/
[root@testceph data]# vi myid
0

#之后会产生一个新文件,直接在里面写 X 即可
#比如我配置的三个server,myid里面写的X就是server.X=ip:2888:3888 中ip所对应的X
 server.0=192.168.229.133:2888:3888【192.168.229.133服务器上面的myid填写0】
 server.1=192.168.229.130:2888:3888【192.168.229.130服务器上面的myid填写1】
 server.2=192.168.229.131:2888:3888【192.168.229.131服务器上面的myid填写2】

把源码包和配置文件考入到其它机器中
[root@testceph local]# scp /etc/profile root@redis2:/etc/profile
[root@testceph local]# scp /etc/profile root@redis1:/etc/profile
[root@testceph local]# scp -r zookeeper-3.4.13 root@redis1:/usr/local/
[root@testceph local]# scp -r zookeeper-3.4.13 root@redis2:/usr/local/

修改所有机器中的vi /usr/local/zookeeper-3.4.13/data/myid里面的数据,0,1,2
确保与server.0, server.1, server.2 对应起来

启动zookeeper.sh
[root@redis1 ~]# zkServer.sh start
[root@redis2 ~]# zkServer.sh start
[root@testceph ~]# zkServer.sh start

是否启动成功,执行一下命令
[root@testceph ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower
[root@testceph ~]# ssh redis1
Last login: Sun Dec 23 01:32:26 2018 from testceph
[root@redis1 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower
[root@redis1 ~]#
[root@redis2 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: leader
[root@redis2 ~]#

查看启动进程
[root@testceph ~]# zkServer.sh start-foreground

测试[root@testceph ~]# zkCli.sh -server testceph:2181



下载kafka
http://kafka.apache.org/downloads
[root@testceph ~]# wget http://mirror.bit.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz
[root@testceph ~]# tar -zxvf kafka_2.12-2.1.0.tgz -C /usr/local/
[root@testceph local]# ln -s kafka_2.12-2.1.0 kafka
[root@testceph local]# cd kafka
[root@testceph kafka]# vi config/server.properties
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-logs
num.partitions=1   #然后下面num.partitions是默认单个broker上的partitions数量,默认是1个,如果想提高单机的并发性能,这里可以配置多个
log.retention.hours=168 #然后是kafka日志的保留时间,单位小时,默认是168小时,也就是7天
zookeeper.connect=testceph:2181,redis1:2181,redis2:2181 #zookeeper集群
zookeeper.connection.timeout.ms=6000  #超时时间
[root@testceph local]# scp -r kafka_2.12-2.1.0 root@redis1:/usr/local/
[root@testceph local]# scp -r kafka_2.12-2.1.0 root@redis2:/usr/local/
[root@testceph local]# vi /etc/profile
export kafka_HOME=/usr/local/kafka_2.12-2.1.0
export PATH=$kafka_HOME/bin:$PATH

[root@redis1 ~]# kafka-server-start.sh -daemon /usr/local/kafka_2.12-2.1.0/config/server.properties


kafka压力测试
1创建topic
[root@testceph ~]# kafka-topics.sh --zookeeper 192.168.229.133:2181 --create --topic test --partitions 3 --replication-factor 1
Created topic "test".
[root@testceph ~]#

删除topic
[root@testceph ~]# kafka-topics.sh --delete --zookeeper testceph:2181 --topic test

查看zookeeper和kafka是否启动成功

一 创建topic
使用 replica-assignment 参数手动指定 Topic Partition Replica 与 Kafka Broker 之间的存储映射关系。
[root@testceph ~]# kafka-topics.sh --create --zookeeper testceph:2181,redis1:2181,redis2:2181 --topic topic_name --replica-assignment 0:1,1:2,2:0
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Created topic "topic_name".

0:1,1:2,2:0中的数字均为 broker.id;3个分区(逗号分隔);每个分区有两个副本(副本所在的 broker 以冒号分割)

使用 partitions 和 replication-factor 参数自动分配存储映射关系。

[root@testceph ~]# kafka-topics.sh --create --zookeeper testceph:2181,redis1:2181,redis2:2181 --topic topic_name1 --partitions 3 --replication-factor 1
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Created topic "topic_name1".
[root@testceph ~]#


创建topic过程的问题,replication-factor个数不能超过broker的个数,否则有如下错误信息:
[root@testceph ~]# kafka-topics.sh --create --zookeeper testceph:2181,redis1:2181,redis2:2181 --topic topic_name2 --partitions 3 --replication-factor 2 --config cleanup.policy=compact --config retention.ms=500
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Error while executing topic command : Replication factor: 2 larger than available brokers: 1.
[2018-12-23 04:16:11,404] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 2 larger than available brokers: 1.
 (kafka.admin.TopicCommand$)


二查看topic
2.1查看topic列表,查询出来的结果仅有topic的名称信息
[root@testceph ~]# kafka-topics.sh --list --zookeeper testceph:2181,redis1:2181,redis2:2181
topic_name
topic_name1
[root@testceph ~]#

2.2查看指定topic明细
[root@testceph ~]# kafka-topics.sh --describe --zookeeper testceph:2181,redis1:2181,redis2:2181 --topic topic_name
Topic:topic_name   PartitionCount:3   ReplicationFactor:2    Configs:
   Topic: topic_name  Partition: 0   Leader: 0  Replicas: 0,1  Isr: 0
   Topic: topic_name  Partition: 1   Leader: none   Replicas: 1,2  Isr:
   Topic: topic_name  Partition: 2   Leader: 0  Replicas: 2,0  Isr: 0
[root@testceph ~]#
PartitionCount: partition个数
ReplicationFactor:副本个数
Partition: partition编号,从0开始递增
Leader:但前partition起作用的breaker.id
Replicas:当前副本数据所在的breaker.id,是一个列表,排在最前面的起作用
lsr:当前kakfa集群中可用的breaker.id列表

三删除topic
[root@testceph ~]# kafka-topics.sh --delete --zookeeper testceph:2181,redis1:2181,redis2:2181 --topic topic_name
Topic topic_name is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
[root@testceph ~]#
若 delete.topic.enable=true
直接彻底删除该 Topic。
若 delete.topic.enable=false
如果当前 Topic 没有使用过即没有传输过信息:可以彻底删除。
如果当前 Topic 有使用过即有过传输过信息:并没有真正删除 Topic 只是把这个 Topic 标记为删除(marked for deletion),重启 Kafka Server 后删除。
注:delete.topic.enable=true 配置信息位于配置文件 config/server.properties 中(较新的版本中无显式配置,默认为 true)。

四修改topic

猜你喜欢

转载自blog.csdn.net/xsjzdrxsjzdr/article/details/85225804