1.zookeeper配置
我的集群共有三台机器,分别叫做ceph10,ceph20,ceph30。在进行zk和Kafka配置前,先确保修改过了它们的hosts文件,通过主机名可以ping通。
下载和解压Kafka和zookeeper,把/zookeeper/conf里的zoosample.cfg,重命名为zoo.cfg。在zoo.cfg里改动如下:
#zookeeper数据目录,根据自己习惯设置
dataDir=/home/ceph-admin/tmp/zkdata
#server.X=host:port:port,第一个端口用户follower节点连接leader节点,第二个端口用户leader选举
#通常是2888和3888
server.1=ceph10:2888:3888
server.2=ceph20:2888:3888
server.3=ceph30:2888:3888
在每个节点/home/ceph-admin/tmp/zkdata文件夹里创建名为myid的文件,三个机器里myid分别是1,2,3。
ceph10里的myid文件里写1,ceph10里的myid文件里写2,ceph10里的myid文件里写3。
在zookeeper的bin目录里,启动zookeeper:
zkServer.sh start
查看zookeeper状态,发现一个leader,两个follower:
zkServer.sh stutus
2.Kafka配置
解压Kafka,在/Kafka/config里修改server.properties文件
- broker.id分别修改成0,1,2。如我的ceph10里broker.id=0,ceph20里broker.id=1,ceph30里broker.id=2。
- 每个节点的advertised.listeners=PLAINTEXT://host:9092把host改成自己的主机名,如ceph20里advertised.listeners=PLAINTEXT://ceph20:9092
- 每个节点都修改Kafka日志目录,log.dirs=/home/ceph-admin/tmp/kafka-logs,根据你的习惯自己定
- 每个节点修改zookeeper.connect=ceph10:2181,ceph20:2181,ceph30:2181,ceph10,ceph20,ceph30分别对应你主机的名字
这样Kafka集群就配置完了,分别在三个节点启动Kafk。
在ceph10的/Kafka/bin目录输入命令,创建名为test的topic。
./kafka-topics.sh --create --zookeeper ceph10:2181,ceph20:2181,ceph30:2181 --replication-factor 2 --partitions 3 --topic test
在ceph20的/Kafka/bin目录输入命令查看当前集群的topic,也看到了test,说明集群配置成功。
./kafka-topics.sh --zookeeper ceph10:2181,ceph20:2181,ceph30:2181 --list