安装部署kafka 消息队列
二进制安装部署zookeeper 这里使用3台机器
依赖于jdk 可以使用apt安装openjdk-8-jdk 生产环境建议使用oracle jdk 这里使用oracle jdk
先下载安装jdk 8u221 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
tar xf jdk-8u221-linux-x64.tar.gz -C /apps 解压到/apps目录下
ln -sv jdk1.8.0_221/ jdk 做一个软连接
vim /etc/profile 在最下面加上下面代码 定义环境变量
export HISTTIMEFORMAT="%F %T `whoami` "
export export LANG="en_US.utf-8"
export JAVA_HOME=/apps/jdk 这里是jdk的目录的绝对路径
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
. /etc/profile 使其生效
java -version 验证java版本
下载zookeeper包 这里下载的是3.4.14版本 https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/
tar xf zookeeper-3.4.14.tar.gz -C /usr/local/src/
ln -sv /usr/local/src/zookeeper-3.4.14/ /usr/local/src/zookeeper
cd /usr/local/src/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg 拷贝模板配置文件为默认文件 然后在改
vim zoo.cfg
mkdir /usr/local/src/zookeeper/data/
在192.168.0.4的机器上把对应的id写到数据目录里的myid文件中 id必须是数据目录里且文件必须是叫myid id和ip和配置文件里是相对应的
echo 1 > /usr/local/src/zookeeper/data/myid
在192.168.0.3的机器上把对应的id写到数据目录里的myid文件中
echo 2 > /usr/local/src/zookeeper/data/myid
在192.168.0.2的机器上把对应的id写到数据目录里的myid文件中
echo 3 > /usr/local/src/zookeeper/data/myid
把配置文件拷贝到其他2台集群机器
scp /usr/local/src/zookeeper/conf/zoo.cfg 192.168.0.3:/usr/local/src/zookeeper/conf/
scp /usr/local/src/zookeeper/conf/zoo.cfg 192.168.0.2:/usr/local/src/zookeeper/conf/
由于配置文件定义了在20秒之内建立连接 所以需要在20秒内启动3台集群
在3台机器 同时启动zookeeper
/usr/local/src/zookeeper/bin/zkServer.sh start
启动完成后查看状态 看哪个是leader (领导者) 哪2个是follower (跟随者)
/usr/local/src/zookeeper/bin/zkServer.sh status
把查到状态为leader 的停掉服务 /usr/local/src/zookeeper/bin/zkServer.sh stop 查看在其他2台哪个选举为leader
部署kafka 依赖于zookeeper
下载kafka的包 http://kafka.apache.org/downloads 选择版本下载
下载好之后把包拷贝到其他2台机器
scp kafka_2.12-2.3.1.tgz 192.168.0.3:/usr/local/src/
scp kafka_2.12-2.3.1.tgz 192.168.0.2:/usr/local/src/
tar xf kafka_2.12-2.3.1.tgz 在3台机器解压
ln -sv /usr/local/src/kafka_2.12-2.3.1 /usr/local/kafka 在3台机器分别做软连接
vim /usr/local/kafka/config/server.properties 3台机器都编辑配置文件 改下下面几项
broker.id=4 每个机器对应的唯一的id 自己指定 必须唯一且是正整数
listeners = PLAINTEXT://192.168.0.4:9092 监听地址 本机的ip地址
log.dirs=/usr/local/kafka/data 自己指定一个日志存放路径
zookeeper.connect=192.168.0.2:2181,192.168.0.3:2181,192.168.0.4:2181 zookeeper连接的ip和端口 可以写多个用逗号隔开
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties 3台机器分别启动kafka
tail -f /usr/local/kafka/logs/*.log 3台机器分别查看日志有没有启动成功
ss -tan | grep 9092 查看9092端口有没有开启