kafka+zookeeper集群完整配置
一、材料准备
- 三台虚拟机:192.168.248.10、192.168.248.11、192.168.248.12
- 虚拟机需要开放接口:
2.1 zookeeper:2181、2888、3888
2.2 kafka:9092 - zookeeper安装包:apache-zookeeper-3.6.3-bin.tar.gz
- zookeeper客户端:ZooInspector.zip
- jdk安装包:jdk-8u291-linux-x64.tar.gz
- kafka安装包:kafka_2.12-2.8.1.tgz
二、网络配置
如果是通过ip访问,则需要保证三台网络互通,并且需要配置ip 主机名。因为大数据服务间的访问很多都需要寻找域名,这里配置ip 主机名相当于一个域名查找功能。如果不配置,访问将会很慢。
- 查看主机名:
hostname
- 修改主机名:
hostnamectl set-hostname 主机名
- 配置ip 主机名:
vi /etc/hosts
192.168.248.10 kafka1 192.168.248.11 kafka2 192.168.248.12 kafka3
三、安装jdk8
-
上传、解压到
/opt/jdk
:jdk-8u291-linux-x64.tar.gz -
配置环境变量:
vi /etc/profile
,在最后一行添加:JAVA_HOME=/opt/jdk/jdk1.8.0_2911 PATH=$PATH:$JAVA_HOME/bin CLASSPATH=:$JAVA_HOME/lib export JAVA_HOME PATH CLASSPATH
-
刷新配置:
source /etc/profile
-
测试:
java -version
四、安装zookeeper集群
-
上传、解压到
/opt/zookeeper
:apache-zookeeper-3.6.3-bin.tar.gz -
创建zookeeper数据文件夹:
mkdir /opt/zookeeper/tmp
(自定义) -
进入配置文件目录:
cd /opt/zookeeper/apache-zookeeper-3.6.3-bin/conf
-
将“
zoo_sample.cfg
”重命名为“zoo.cfg
”,并打开配置:4.1 打开zoo.cfg,修改数据文件夹地址:
dataDir=/opt/zookeeper/tmp
4.2 打开zoo.cfg,如果需要变更zookeeper端口号,可修改:
clientPort=端口号
,默认21814.3 打开zoo.cfg,修改8080端口:
admin.serverPort=8888
(无用端口,默认8080)4.4 打开zoo.cfg,添加集群配置
#ip 数据同步 通信端口,保证zookeeper、数据同步、通信端口三个端口不同 server.1=192.168.248.10:2888:3888 server.2=192.168.248.11:2888:3888 server.3=192.168.248.12:2888:3888
-
进入zookeeper数据文件目录:
cd /opt/zookeeper/tmp
-
新建myid并且写入对应的myid,myid为第4步对应的数字(server.数字)
服务器192.168.248.10:echo 1 > myid 服务器192.168.248.11:echo 2 > myid 服务器192.168.248.12:echo 3 > myid
-
启动:
cd /opt/zookeeper/apache-zookeeper-3.6.3-bin/bin
-->./zkServer.sh start
-
查看主从状态:
./zkServer.sh status
五、安装kafka集群
- 上传、解压到
/opt/kafka
:kafka_2.12-2.8.1.tgz - 修改配置文件:
vi /opt/kafka/kafka_2.12-2.8.1/config/server.properties
2.1 修改节点标识:broker.id=1
(2,3)
2.2 配置可删除:delete.topic.enable=true
2.3 日志路径:log.dirs=/opt/kafka/tmp
2.4 配置端口:port=9092
(自定义,默认9092)
2.5 配置不可自动生成主题:auto.create.topics.enable=false
2.6 配置可被外部访问:listeners=PLAINTEXT://0.0.0.0:9092
(跟端口一致)advertised.listeners=PLAINTEXT://192.168.248.10:9092
(跟端口一致)
2.7 配置清除数据日志文件策略:log.cleanup.policy=delete
2.8 配置zk:zookeeper.connect=192.168.248.10:2181,192.168.248.11:2181,192.168.248.12:2181
- 创建日志文件夹:
mkdir /opt/kafka/log
- 进入目录:
cd /opt/kafka/kafka_2.12-2.8.1/bin
- 启动:
nohup ./kafka-server-start.sh /opt/kafka/kafka_2.12-2.8.1/config/server.properties >>/opt/kafka/log/kafkaLog
- 查看端口:
netstat-luntp
。ps:如果第一次启动失败,尝试再次启动。因为zookeeper可能还没启动完毕,这时候启动kafka就会报错找不到zookeeper的服务。 - 可以使用ZooInspector工具查看是否集群成功,解压双击:zookeeper-dev-ZooInspector.jar
六、kafka集群配置ACL权限
该步骤主要是为了实现kafka主题的权限监控。具体可了解:kafka acl权限
-
cd /opt/kafka/kafka_2.12-2.8.1/bin/
-
添加admin用户:
./kafka-configs.sh --zookeeper 192.168.248.10:2181 --alter --add-config 'SCRAM-SHA-512=[password=admin]' --entity-type users --entity-name admin
-
查看admin用户:
./kafka-configs.sh --zookeeper 192.168.248.10:2181 --describe --entity-type users --entity-name admin
ps:因为是集群,所以一台添加,三台共享用户 -
在
/opt/kafka/kafka_2.12-2.8.1/config
底下添加kafka-broker-jaas.conf
文件KafkaServer { org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin"; };
-
配置文件:
/opt/kafka/kafka_2.12-2.8.1/config/server.properties
5.1 添加项
# 启用ACL authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer # 设置本例中admin为超级用户 super.users=User:admin # 启用SCRAM机制,采用SCRAM-SHA-512算法 sasl.enabled.mechanisms=SCRAM-SHA-512 # 为broker间通讯开启SCRAM机制,采用SCRAM-SHA-512算法 sasl.mechanism.inter.broker.protocol=SCRAM-SHA-512 # broker间通讯使用PLAINTEXT,本例中不演示SSL配置 security.inter.broker.protocol=SASL_PLAINTEXT
5.2 修改项
# 配置listeners使用SASL_PLAINTEXT listeners=SASL_PLAINTEXT://192.168.248.10:9092 # 配置advertised.listeners advertised.listeners=SASL_PLAINTEXT://192.168.248.10:9092
-
修改启动配置:
/opt/kafka/kafka_2.12-2.8.1/bin/kafka-server-start.sh
脚本最后一行配置环境变量如下:
exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/opt/kafka/kafka_2.12-2.8.1/config/kafka-broker-jaas.conf kafka.Kafka "$@"
-
重启kafka
七、相关脚本编写
-
zookeeper启动脚本
1.1
cd /opt
-->vi zookeeper.sh
cd /opt/zookeeper/apache-zookeeper-3.6.3-bin/bin ./zkServer.sh start
1.2 zookeeper脚本赋权:
chmod u x zookeeper.sh
1.3 启动脚本测试:./zookeeper.sh
1.4 查看端口:netstat -luntp -
kafka启动脚本
2.1cd /opt
-->vi kafka.sh
cd /opt/kafka/kafka_2.12-2.8.1/bin nohup ./kafka-server-start.sh /opt/kafka/kafka_2.12-2.8.1/config/server.properties >>/opt/kafka/log/kafkaLog
2.2 kafka脚本赋权:
chmod u x kafka.sh
2.3 启动脚本测试:./kafka.sh
2.4 查看端口:netstat -luntp
安装完成,如遇到bug获安装问题,可在下方留言,看到都会及时回答!!!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhheeif
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22