Kafka集群安装部署
Kafka2.3.1+jdk1.8.0_131+zookeeper3.4.12
1.JDK的安装
- 登录虚拟机进入终端
切换到root用户,输入:su 接着输入密码 再输入:cd … 回到安装/opt目录
- 查看Linux系统是否有自带的jdk:
输入:java -version
发现有输入:rpm -qa | grep java 检测jdk的安装包,(注意:rpm命令符没有时记得下载一个输入:apt-get install +命令名称)
接着进行一个个删除包,输入:rpm -e --nodeps +包名
最后再次:rpm -qa | grep java检查是否删除完即可 - 下载完后使用maboxterm 链接服务器,然后上传安装文件
- 使用发送密令,把文件发送道其他的几个节点上:
scp jdk-8u131-linux-x64.rpm root@192.168.100.152:$PWD/java/
- 在终端进入对应的文件的目录,安装到制定目录,制定到/opt目录下了:
rpm -i --badreloc --relocate /usr/java=/opt jdk-8u131-linux-x64.rpm(卸载 rpm -e xxxx.rpm)
- 环境变量配置
vim /etc/profile进入编辑状态
export JAVA_HOME=/opt/jdk1.8.0_131
export PATH=${JAVA_HOME}/bin:$PATH
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:${KAFKA_HOME}/bin
wq 保存退出
- 重新加载生效
source /etc/profile
- 最后一步,查看安装情况:java -version
2.Kafka 的安装
- 上传kafka的安装包
- 减压
tar -xzf kafka_2.12-2.3.1.tgz
- 修改文件名
mv kafka_2.12-2.3.1 kafka
- 创建日志文件夹
cd kafka
mkdir kafka-logs
chmod 777 kafka-logs
- 关闭防火墙
关闭防火墙命令:systemctl stop firewalld.service
关闭开机自启动:systemctl disable firewalld.service
- 修改kafka配置server.properties
cd kafka_2.12-2.3.1/config
vi server.properties
broker.id=0
log.dirs=/opt/kafka/kafka-logs
listeners=PLAINTEXT://192.168.100.10:9092
advertised.listeners=PLAINTEXT://192.168.100.10:9092
zookeeper.connect=DM-147:2181,DM-148:2181,DM-149:2181
- 修改broker.id ,分别为不同的ID即可,不可重复
- 配置发送到其他的节点
scp server.properties root@192.168.100.122:$PWD/
- 配置环境
- 加入IP映射
vi /etc/hosts
192.168.100.10 DM-150
192.168.100.11 DM-151
192.168.100.12 DM-152
- 配置免密登录
1.ssh-keygen
2.cd ~
3.ls -al 进入 .ssh 查看
4.在ssh中复制一个本地的公钥:cp id_rsa.pub authorized_keys
将其他服务器的ip公钥发送过来,在本台服务器就可以直接登录别的服务器
使用密令: ssh-copy-id 服务器ip
启动
- 首先需要启动zookeeper
/usr/local/zookeeper-3.4.13/bin/zkServer.sh start
- 启动kafka:
bin/kafka-server-start.sh config/server.properties &
- 测试
1.创建topic:
./bin/kafka-topics.sh --create --zookeeper DM-147:2181,DM-148:2181,DM-149:2181 --replication-factor 3 --partitions 3 --topic testTopic
2.查看topic:
./bin/kafka-topics.sh --list --zookeeper DM-147:2181,DM-148:2181,DM-149:218
3.启动生产者:
./bin/kafka-console-producer.sh --broker-list DM-147:2181,DM-148:2181,DM-149:2181 --topic testTopic150
- 启动消费者:
./bin/kafka-console-consumer.sh --bootstrap-server DM-147:2181,DM-148:2181,DM-149:2181 --topic testTopic150
- kafka版本查看:
find ./libs/ -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*'
参考:https://blog.csdn.net/leanaoo/article/details/84310371
集群统一启动脚本
进入目录:cd /opt/kafka/bin
启动:sh kafka.sh start
停止:sh kafka.sh stop
#!/bin/bash
case $1 in "start"){
for i in {vm-zbzx1,vm-zbzx2,vm-zbzx3}
do
echo "==========kafka节点 $i 启动 =========="
ssh $i 'nohup /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties &'
done
};;
"stop"){
for i in {vm-zbzx1,vm-zbzx2,vm-zbzx3}
do
echo "==========kafka节点 $i 停止 =========="
ssh $i 'nohup /opt/kafka/bin/kafka-server-stop.sh -daemon /opt/kafka/config/server.properties &'
done
};;
esac
调试安装Telnet
- 检测telnet-server的rpm包是否安装,若无输入内容,则表示没有安装。
[root@localhost ~]# rpm -qa telnet-server
2、若未安装,则安装telnet-server,否则忽略此步骤
[root@localhost ~]#yum install telnet-server
3、检测telnet-server的rpm包是否安装
[root@localhost ~]# rpm -qa telnet
telnet-0.17-47.el6_3.1.x86_64
4、若未安装,则安装telnet,否则忽略此步骤
[root@localhost ~]# yum install telnet