美文网首页
简洁的 kafka 集群搭建

简洁的 kafka 集群搭建

作者: e辉 | 来源:发表于2017-12-01 09:48 被阅读31次

集群环境(3台设备):
192.168.60.112
192.168.60.113
192.168.72.224

1.首先安装JDK,需要JDK7以上的版本(若已安装请跳过此步)

cd /usr/local/
mv ~sdnmuser/jdk1.7.0_79.tar /usr/local/
tar zxvf jdk1.7.0_79.tar
chmod -R 777 jdk1.7.0_79
rm -f jdk1.7.0_79.tar

设置环境变量(注意,如果设备已经有别的版本jdk设置了环境变量,这里就不要覆盖其他版本的jdk,否则会影响其他java程序)

vi /etc/profile
添加 JAVA_HOME=/usr/local/jdk1.7.0_79
在PATH前面加上
 $JAVA_HOME/bin:$PATH
使配置马上生效  source /etc/profile
在命令行输入java -version 显示如下即安装成功
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) Server VM (build 24.79-b02, mixed mode)

2.解压zookeeper安装包

tar zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /home/sdnmuser/
chmod -R 777 /home/sdnmuser/zookeeper-3.4.6/        修改文件命令

3.创建zookeeper数据目录和myid文件

mkdir /home/sdnmuser/zookeeper-3.4.6/data
vi /home/sdnmuser/zookeeper-3.4.6/data/myid
内容为1 (myid的值需要与zoo.cfg中server.x的x值对应,它是zookeeper集群中每个sever的唯一标识)

4.配置zoo.cfg

cp /home/sdnmuser/zookeeper-3.4.6/conf/zoo_sample.cfg /home/sdnmuser/zookeeper-3.4.6/conf/zoo.cfg
vi /home/sdnmuser/zookeeper-3.4.6/conf/zoo.cfg
修改为如下内容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/sdnmuser/zookeeper-3.4.6/data
clientPort=2181
server.1=192.168.60.112:2888:3888
server.2=192.168.60.113:2888:3888
server.3=192.168.72.224:2888:3888

注意 :
检查bin/zkEnv.sh文件中的java路径是否与本机路径相同

5.把zookeeper-3.4.6目录拷贝到其他2台设备

cd /home/sdnmuser/
scp -r zookeeper-3.4.6 192.168.60.113:
scp -r zookeeper-3.4.6 192.168.72.224:

修改其他2台设备上的myid

6.启动zookeeper集群
分别在3台设备上执行zookeeper启动命令

cd /home/sdnmuser/zookeeper-3.4.6/bin
./zkServer.sh start

查看启动是否成功

./zkServer.sh status
若执行成功会提示:
[sdnmuser@ELK2 bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /home/sdnmuser/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader

如果启动失败,请关闭防火墙再试试

7.安装kafka,解压kafka安装包

tar zxvf kafka_2.10-0.10.1.1.tgz  
mv kafka_2.10-0.10.1.1 /home/sdnmuser/

8.创建kafka消息日志目录

cd /home/sdnmuser/kafka_2.10-0.10.1.1
mkdir logs

9.修改server.properties

vi /home/sdnmuser/kafka_2.10-0.10.1.1/config/server.properties

修改以下属性项
broker.id=1                                  #集群中每个broker的唯一标识
listeners=PLAINTEXT://192.168.60.112:9092  #kafka broker对外提供服务的IP和端口
log.dirs=/home/sdnmuser/kafka_2.10-0.10.1.1/logs   #消息存放的目录,多个地址的话用逗号分割,多个目录分布在不同磁盘上可以提高读写性能
num.partitions=1                          #默认的分区数,一个topic默认1个分区数
auto.create.topics.enable=false #默认false,当为true时则写数据时如果没有此topic就自动创建
zookeeper.connect=192.168.60.112:2181,192.168.60.113:2181,192.168.72.224:2181  #设置zookeeper的连接IP端口(端口默认2181) 以hostname:port的形式,可有多个以逗号分隔

10.复制kafka 到另外两台设备

cd /home/sdnmuser/
scp -r kafka_2.10-0.10.1.1 192.168.60.113:
scp -r kafka_2.10-0.10.1.1 192.168.72.224:

需要在另外2个broker的server.properties中 修改其对应的broker.id 和listeners

11.启动kafka集群
分别在3台设备上执行

cd /home/sdnmuser/kafka_2.10-0.10.1.1/bin
./kafka-server-start.sh ../config/server.properties &

12.验证kafka集群是否正常运行

i.创建一个topic,带一个分区,2个副本,name为test

./kafka-topics.sh --create --zookeeper 192.168.60.112:2181 --replication-factor 2 --partitions 1 --topic test

ii.在设备1创建一个producer,向test topic写入数据(步骤ii与步骤iii是是一起的,ii 是生产者 iii是消费者,需要不同的窗口同时进行)

./kafka-console-producer.sh --broker-list 192.168.60.112:9092 --topic test

iii.在设备2创建一个consumer,读取设备1的生产者写入topic中的数据

./kafka-console-consumer.sh --zookeeper 192.168.60.112:2181 --topic test --from-beginning

相关文章

网友评论

      本文标题:简洁的 kafka 集群搭建

      本文链接:https://www.haomeiwen.com/subject/mjjibxtx.html