一、Zookeeper集群安装
#下载二进制包
curl -O -L http://apache.01link.hk/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
#解压缩
tar -zxf zookeeper-3.4.14.tar.gz
#剪切
mv zookeeper-3.4.14 /usr/local/zookeeper
#创建数据目录
mkdir -p /var/lib/zookeeper
#创建配置文件
#在数据目录dataDir下创建myid文件,如192.168.5.137的myid文件内容为137
cd /var/lib/zookeeper
vim myid
cat > /usr/local/zookeeper/conf/zoo.cfg << EOF
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=20
syncLimit=5
server.137=192.168.5.137:2888:3888
server.43=192.168.5.43:2888:3888
server.11=172.31.19.11:2888:3888
EOF
#启动
/usr/local/zookeeper/bin/zkServer.sh start
#停止
/usr/local/zookeeper/bin/zkServer.sh stop
在这个配置中,initLimit 表示用于在从节点与主节点之间建立初始化连接的时间上限,
syncLimit表示允许从节点与主节点处于不同步状态的时间上限。这两个值都是tickTime 的
倍数,所以initLimit是 20*2000ms ,也就是 40s 。配置里还列出了群组中所有服务器的地
址。服务器地址遵循 server.X=hostname:peerPort:leaderPort格式,各个参数说明如下:
X:
服务器的 ID,它必须是一个整数,不过不一定要从 0 开始,也不要求是连续的
hostname:
服务器的机器名或 IP 地址;
peerPort:
用于节点间通信的 TCP 端口;
leaderPort:
用于首领选举的 TCP 端口。
验证Zookeeper是否安装正确
[root@szx1-personal-liuchuang-dev-001 ~]# telnet localhost 2181
Trying ::1...
Connected to localhost.
Escape character is '^]'.
srvr
Zookeeper version: 3.4.14-4c25d480e66aadd371de8bd2fd8da255ac140bcf, built on 03/06/2019 16:18 GMT
Latency min/avg/max: 0/0/13
Received: 183817
Sent: 183816
Connections: 1
Outstanding: 0
Zxid: 0x200000153
Mode: follower
Node count: 217
Connection closed by foreign host.
注意:
zookeeper集群安装需要开放对外端口、peerPort、leaderPort,或者关闭防火墙
firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --add-port=2888/tcp --permanent
firewall-cmd --add-port=3888/tcp --permanent
firewall-cmd --reload
或
systemctl stop firewalld
二、kafka安装
curl -L -O http://ftp.cuhk.edu.hk/pub/packages/apache.org/kafka/2.1.1/kafka_2.12-2.1.1.tgz
三台机器:
192.168.5.43
192.168.5.137
172.31.19.11
tar -zxf kafka_2.12-2.1.1.tgz
mv kafka_2.12-2.1.1 /usr/local/kafka
mkdir /tmp/kafka-logs
#配置监听器
vim /usr/local/kafka/config/server.properties
找到#listeners=PLAINTEXT://hostname:9092和#advertised.listeners=PLAINTEXT://192.168.5.43:9092
取消注释,并将hostname修改本机hostname或者IP
listeners=PLAINTEXT://192.168.5.43:9092
advertised.listeners=PLAINTEXT://192.168.5.43:9092
#修改broker.id
broker.id=43
#zookeeper连接地址
zookeeper.connect=192.168.5.43:2181,192.168.5.137:2181,172.31.19.11:2181
#启动
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
#查看启动状况
[root@szx1-personal-liuchuang-dev-001 ~]# jps
20276 Jps
20245 Kafka
创建验证主题:
/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.5.43:2181 --replication-factor 1 --partitions 1 --topic test
#删除主题
/usr/local/kafka/bin/kafka-topics.sh --delete --zookeeper 192.168.5.43:2181 --topic test
#查看主题
/usr/local/kafka/bin/kafka-topics.sh --zookeeper 192.168.5.43:2181 --describe --topic test
#发送消息
/usr/local/kafka/bin/kafka-console-producer.sh --broker-list 192.168.5.43:9092 --topic test
Test 1
^C
#消费消息
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.5.43:9092 --topic test --from-beginning
#关闭
/usr/local/kafka/bin/kafka-server-stop.sh
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties