1.1.1 部署zookpeer
在node02下载并解压zookeeper软件包
cd /usr/local
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
或者:scp cat@192.168.28.100:/home/cat/zookeeper-3.4.6.tar.gz /tmp(注意目录)
mv zookeeper-3.4.6.tar.gz /usr/local
tar -zxvf zookeeper-3.4.6.tar.gz
ln -s zookeeper-3.4.6 zookeeper(创建软链接,创建快捷方式)
设置环境变量,在node02-4节点执行命令vim /etc/profile后,在文件末尾添加以下内容:
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH
添加完成后,执行命令source /etc/profile,使环境变量生效
修改Zookeeper配置文件,在node02节点执行以下命令,进入Zookeeper所在目录。
cd /usr/local/zookeeper/conf
拷贝配置文件。
cp zoo_sample.cfg zoo.cfg
修改配置文件中以下内容
vim zoo.cfg
dataDir=/usr/local/zookeeper/tmp
server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888
步骤 3 创建并编辑myid文件
在node02节点执行以下命令
在node02节点创建zookpeer数据目录
mkdir /usr/local/zookeeper/tmp
touch /usr/local/zookeeper/tmp/myid
echo 1 > /usr/local/zookeeper/tmp/myid
同步配置, 在node02节点执行以下命令,同步配置到其它节点
scp -r /usr/local/zookeeper-3.4.6 root@node03:/usr/local
scp -r /usr/local/zookeeper-3.4.6 root@node04:/usr/local
修改其它节点配置, 登录node03、node04,创建软链接、修改myid内容。node03:
cd /usr/local
ln -s zookeeper-3.4.6 zookeeper
echo 2 > /usr/local/zookeeper/tmp/myid
node04:
cd /usr/local
ln -s zookeeper-3.4.6 zookeeper
echo 3 > /usr/local/zookeeper/tmp/myid
运行验证分别在node02-4上执行以下命令,启动Zookeeper
cd /usr/local/zookeeper/bin
./zkServer.sh start
注:停止Zookpeer的命令是./zkServer.sh stop查看Zookeeper状态,显示信息如下,表示状态正常
[root@node02 bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@node03 bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@node04 bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
2.1.1 部署Kafka
下载并解压Kafka, 在node02上执行以下命令:
wget https://archive.apache.org/dist/kafka/0.10.1.1/kafka_2.11-0.10.1.1.tgz
mv kafka_2.11-0.10.1.1.tgz /usr/local
tar -zxvf kafka_2.11-0.10.1.1.tgz
ln -s kafka_2.11-0.10.1.1 kafka
设置环境变量, 在node02-4节点执行命令vim /etc/profile后,在文件末尾添加以下内容:
export KAFKA_HOME=/usr/local/kafka
export PATH=$KAFKA_HOME/bin:$PATH
添加完成后,执行命令source /etc/profile,使环境变量生效
修改Kafka配置文件在node02执行以下命令,切换到配置文件目录下
cd $KAFKA_HOME/config
在node02上执行命令vim server.properties,修改server.properties的部分内容如下所示:
broker.id=0
host.name=node02
listeners=PLAINTEXT://node02:9092
zookeeper.connect=node02:2181,node03:2181,node04:2181
同步配置,在node02上执行以下命令,拷贝kafka_2.11-0.10.1.1到node03、4的“/usr/local”目录下
scp -r /usr/local/kafka_2.11-0.10.1.1 root@node03:/usr/local
scp -r /usr/local/kafka_2.11-0.10.1.1 root@node04:/usr/local
登录到node03、4节点,为kafka_2.11-0.10.1.1建立软链接
cd /usr/local
ln -s kafka_2.11-0.10.1.1 kafka
登录到node03节点,切换到$KAFKA_HOME/config目录下,执行命令vim server.properties,修改server.properties的部分内容如下所示:
broker.id=1
host.name=node03# 可填对应的IP地址
listeners=PLAINTEXT://node03:9092
登录到node04节点,切换到$KAFKA_HOME/config目录下,执行命令vim server.properties,修改server.properties的部分内容如下所示:
broker.id=2
host.name=node04# 可填对应的IP地址
listeners=PLAINTEXT://node04:9092
分 运行验证分别在node02-4节点上执行以下命令,启动Kafka。
cd /usr/local/kafka/bin
./kafka-server-start.sh -daemon ../config/server.properties
然后在node02-4节点上执行jps命令,查看进程状态
[root@node02 bin]# jps
2002 QuorumPeerMain
2901 Jps
2827 Kafka
1502 WrapperSimpleApp
[root@node03 bin]# jps
4625 Kafka
1515 WrapperSimpleApp
2012 QuorumPeerMain
4701 Jps
[root@node04 bin]# jps
7346 Jps
1483 WrapperSimpleApp
2380 QuorumPeerMain
7277 Kafka
显示以上进程状态,表示kafka正常
3.1.1 消息订阅实战
创建Kafka主题在node02上执行命令:
[root@node02 bin]# kafka-topics.sh --create --topic topic-test1 --partitions 1 --replication-factor 1 --zookeeper 192.168.253.129:2181, 192.168.253.130:2181, 192.168.253.131:2181
Created topic "topic-test1".
在node02、3、4上执行以下命令,都可以查看到上一步骤创建的topic主题
[root@node02 bin]# kafka-topics.sh --list --zookeeper 192.168.253.129:2181, 192.168.253.130:2181, 192.168.253.131:2181
__consumer_offsets
topic-test1
在node03或node04上执行命令,创建消费者,模拟目标系统
[root@node03 bin]# kafka-console-consumer.sh --topic topic-test1 --bootstrap-server 192.168.253.129:9092, 192.168.253.130:9092, 192.168.253.131:9092 --new-consumer
该命令执行后,就会消费topic数据,此窗口不要再做其他操作,不要关闭。
在node02上执行命令,创建生产者,模拟业务系统
[root@node02 bin]# kafka-console-producer.sh --broker-list 192.168.253.129:9092, 192.168.253.130:9092, 192.168.253.131:9092 --topic topic-test1命令执行后,在shell端自行输入数据
在生产者的shell段输入数据后,切换到消费者的shell端,可以看到控制台有相同的数据输出
--实验结束!