Zookeeper+Kafka集群的安装部署

发布 : 2017-07-03 分类 : 大数据 浏览 :
1
2
3
192.168.31.231 matrix-cache01
192.168.31.232 matrix-cache02
192.168.31.233 matrix-cache03
1
2
3
4
5
6
7
8
9
时效性不高的数据,比如一些商品的基本信息,如果发生了变更,假设在5分钟之后再更新到页面中,供用户观察到

时效性要求不高的数据,采取的是异步更新缓存的策略

时效性要求很高的数据,采取的是数据库+缓存双写的技术方案,也解决了双写的一致性的问题

缓存数据生产服务,监听一个消息队列,然后数据源服务(商品信息管理服务)发生了数据变更之后,就将数据变更的消息推送到消息队列中

缓存数据生产服务可以去消费到这个数据变更的消息,然后根据消息的指示提取一些参数,然后调用对应的数据源服务的接口,拉取数据,这个时候一般是从mysql库中拉去的

zookeeper集群搭建

1
2
zookeeper+kafka的集群
一般是三节点

解压缩

1
[root@matrix-cache01 ~]# tar -zxvf zookeeper-3.4.8.tar.gz

重命名

1
2
[root@matrix-cache01 ~]# mv zookeeper-3.4.8 zk
[root@matrix-cache01 ~]# mv zk /usr/local

配置zookeeper相关的环境变量

1
[root@matrix-cache01 ~]# vi ~/.bashrc
1
2
export ZOOKEEPER_HOME=/usr/local/zk
export PATH=$PATH:$ZOOKEEPER_HOME/bin
1
[root@matrix-cache01 ~]# source ~/.bashrc
1
2
3
4
5
6
7
8
[root@matrix-cache01 ~]# cd /usr/local/zk/conf
cp zoo_sample.cfg zoo.cfg
[root@matrix-cache01 conf]# ls -l
总用量 16
-rw-rw-r-- 1 1000 1000 535 2月 6 2016 configuration.xsl
-rw-rw-r-- 1 1000 1000 2161 2月 6 2016 log4j.properties
-rw-r--r-- 1 root root 922 7月 3 00:25 zoo.cfg
-rw-rw-r-- 1 1000 1000 922 2月 6 2016 zoo_sample.cfg
1
2
3
4
5
6
[root@matrix-cache01 conf]# vi zoo.cfg
修改:dataDir=/usr/local/zk/data
新增:
server.0=matrix-cache01:2888:3888
server.1=matrix-cache02:2888:3888
server.2=matrix-cache03:2888:3888
1
2
3
[root@matrix-cache01 ~]# cd /usr/local/zk/
[root@matrix-cache01 zk]# mkdir data
[root@matrix-cache01 zk]# cd data
1
2
[root@matrix-cache01 data]# vi myid
0

另外两个节点上按照上述步骤配置

使用scp将zk目录拷贝到另外两个节点上

1
2
[root@matrix-cache01 ~]# scp -r /usr/local/zk root@matrix-cache02:/usr/local/zk
[root@matrix-cache01 ~]# scp -r /usr/local/zk root@matrix-cache03:/usr/local/zk

使用scp将环境变量拷贝到另外两个节点上

1
2
[root@matrix-cache01 ~]# scp -r ~/.bashrc root@matrix-cache02:/root
[root@matrix-cache01 ~]# scp -r ~/.bashrc root@matrix-cache03:/root

matrix-cache02节点

1
[root@matrix-cache02 ~]# source ~/.bashrc
1
2
[root@matrix-cache02 ~]# vi /usr/local/zk/data/myid
1

matrix-cache03节点

1
[root@matrix-cache03 ~]# source ~/.bashrc
1
2
[root@matrix-cache03 ~]# vi /usr/local/zk/data/myid
2

启动zk

1
2
3
4
[root@matrix-cache01 ~]# /usr/local/zk/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
1
2
3
4
[root@matrix-cache02 ~]# /usr/local/zk/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
1
2
3
4
[root@matrix-cache03 ~]# /usr/local/zk/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

查看zk状态

1
2
3
4
[root@matrix-cache01 ~]# /usr/local/zk/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Mode: follower
1
2
3
4
[root@matrix-cache02 ~]# /usr/local/zk/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Mode: follower
1
2
3
4
[root@matrix-cache03 ~]# /usr/local/zk/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Mode: leader

kafka集群搭建

解压缩

1
[root@matrix-cache01 ~]# tar -zxvf kafka_2.9.2-0.8.1.tgz  -C /usr/local

重命名

1
2
[root@matrix-cache01 ~]# cd /usr/local
[root@matrix-cache01 local]# mv kafka_2.9.2-0.8.1 kafka

拷贝kafka目录到另外两个节点

1
2
[root@matrix-cache01 ~]# scp -r /usr/local/kafka/ root@matrix-cache02:/usr/local/kafka/
[root@matrix-cache01 ~]# scp -r /usr/local/kafka/ root@matrix-cache03:/usr/local/kafka/

配置kafka

1
2
3
[root@matrix-cache01 ~]# vi /usr/local/kafka/config/server.properties
broker.id=0
zookeeper.connect=192.168.31.231:2181,192.168.31.232:2181,192.168.31.233:2181
1
2
3
[root@matrix-cache02 ~]# vi /usr/local/kafka/config/server.properties
broker.id=1
zookeeper.connect=192.168.31.231:2181,192.168.31.232:2181,192.168.31.233:2181
1
2
3
[root@matrix-cache03 ~]# vi /usr/local/kafka/config/server.properties
broker.id=2
zookeeper.connect=192.168.31.231:2181,192.168.31.232:2181,192.168.31.233:2181

遇到问题

1
2
3
[root@matrix-cache02 kafka]# Unrecognized VM option 'UseCompressedOops'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

解决kafka Unrecognized VM option ‘UseCompressedOops’问题

1
2
3
4
5
6
[root@matrix-cache01 ~]# vi /usr/local/kafka/bin/kafka-run-class.sh
if [ -z "$KAFKA_JVM_PERFORMANCE_OPTS" ]; then
KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true"
fi

去掉-XX:+UseCompressedOops即可

安装slf4j

1
2
[root@matrix-cache01 ~]# mv slf4j-1.7.6.zip /usr/local
[root@matrix-cache01 ~]# cd /usr/local

解压

1
[root@matrix-cache01 local]# unzip slf4j-1.7.6.zip

把slf4j中的slf4j-nop-1.7.6.jar复制到kafka的libs目录下面

1
[root@matrix-cache01 ~]# mv /usr/local/slf4j-1.7.6/slf4j-nop-1.7.6.jar /usr/local/kafka/libs

删除两个节点的kafka目录,重新拷贝kafka目录到另外两个节点

1
2
[root@matrix-cache01 ~]# scp -r /usr/local/kafka/ root@matrix-cache02:/usr/local/kafka/
[root@matrix-cache01 ~]# scp -r /usr/local/kafka/ root@matrix-cache03:/usr/local/kafka/

配置kafka

1
2
3
[root@matrix-cache01 ~]# vi /usr/local/kafka/config/server.properties
broker.id=0
zookeeper.connect=192.168.31.231:2181,192.168.31.232:2181,192.168.31.233:2181
1
2
3
[root@matrix-cache02 ~]# vi /usr/local/kafka/config/server.properties
broker.id=1
zookeeper.connect=192.168.31.231:2181,192.168.31.232:2181,192.168.31.233:2181
1
2
3
[root@matrix-cache03 ~]# vi /usr/local/kafka/config/server.properties
broker.id=2
zookeeper.connect=192.168.31.231:2181,192.168.31.232:2181,192.168.31.233:2181

启动kafka

1
2
3
[root@matrix-cache01 ~]# cd /usr/local/kafka/
[root@matrix-cache01 kafka]# ./bin/kafka-server-start.sh config/server.properties &
[1] 3629
1
2
3
[root@matrix-cache02 ~]# cd /usr/local/kafka/
[root@matrix-cache02 kafka]# ./bin/kafka-server-start.sh config/server.properties &
[1] 2726
1
2
3
[root@matrix-cache03 ~]# cd /usr/local/kafka/
[root@matrix-cache03 kafka]# ./bin/kafka-server-start.sh config/server.properties &
[1] 2767

使用jps检查启动是否成功

1
2
3
4
[root@matrix-cache01 ~]# jps
3629 Kafka
3254 QuorumPeerMain
3685 Jps

1
2
3
4
[root@matrix-cache02 ~]# jps
2782 Jps
2503 QuorumPeerMain
2726 Kafka
1
2
3
4
[root@matrix-cache03 ~]# jps
2820 Jps
2506 QuorumPeerMain
2767 Kafka

使用基本命令检查kafka是否搭建成功

1
2
[root@matrix-cache01 ~]# cd /usr/local/kafka/
[root@matrix-cache01 kafka]# ./bin/kafka-topics.sh --zookeeper 192.168.31.231:2181,192.168.31.232:2181,192.168.31.233:2181 --topic test --replication-factor 1 --partitions 1 --create

1
2
[root@matrix-cache02 ~]# cd /usr/local/kafka/
[root@matrix-cache02 kafka]# ./bin/kafka-console-producer.sh --broker-list 192.168.31.231:9092,192.168.31.232:9092,192.168.31.233:9092 --topic test
1
2
3
[root@matrix-cache03 ~]# cd /usr/local/kafka/
[root@matrix-cache03 kafka]# ./bin/kafka-console-consumer.sh --zookeeper 192.168.31.231:2181,192.168.31.232:2181,192.168.31.233:2181 --topic test --from-beginning
sadasdad

安装Scala

解压缩

1
[root@matrix-cache01 ~]# tar -zxvf scala-2.11.4.tgz -C /usr/local

重命名

1
[root@matrix-cache01 ~]# mv /usr/local/scala-2.11.4 /usr/local/scala

配置环境变量

1
2
3
4
[root@matrix-cache01 ~]# vi ~/.bashrc
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin
[root@matrix-cache01 ~]# source ~/.bashrc
1
2
[root@matrix-cache01 ~]# scala -version
Scala code runner version 2.11.4 -- Copyright 2002-2013, LAMP/EPFL

拷贝scala目录到另外两个节点上

1
2
[root@matrix-cache01 ~]# scp -r /usr/local/scala/ root@matrix-cache02:/usr/local/scala
[root@matrix-cache01 ~]# scp -r /usr/local/scala/ root@matrix-cache03:/usr/local/scala
1
2
[root@matrix-cache01 ~]# scp -r ~/.bashrc root@matrix-cache02:/root
[root@matrix-cache01 ~]# scp -r ~/.bashrc root@matrix-cache03:/root

matrix-cache02节点

1
2
3
[root@matrix-cache02 ~]# source ~/.bashrc
[root@matrix-cache02 ~]# scala -version
Scala code runner version 2.11.4 -- Copyright 2002-2013, LAMP/EPFL

matrix-cache03节点

1
2
3
[root@matrix-cache03 ~]# source ~/.bashrc
[root@matrix-cache03 ~]# scala -version
Scala code runner version 2.11.4 -- Copyright 2002-2013, LAMP/EPFL
本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2017/07/03/Zookeeper+Kafka集群的安装部署/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹