部署zookeeper和kafka集群

部署zookeeper和kafka集群

基础配置

先关闭firewallenforce
先关闭firewallenforce
先关闭firewallenforce
重要的事情说三遍!!!!
先更改主机名

IP地址主机名
192.168.200.11zookeeper1
192.168.200.12zookeeper2
192.168.200.13zookeeper3

然后更改/etc/hosts文件

192.168.200.11 zk1.mall zookeeper1.mall kafka1.mall zookeeper1
192.168.200.12 zk2.mall zookeeper2.mall kafka2.mall zookeeper2
192.168.200.13 zk3.mall zookeeper3.mall kafka3.mall zookeeper3

然后通过scp传到其他的主机上

scp /etc/hosts zk2.mall:/etc/hosts
scp /etc/hosts zk3.mall:/etc/hosts

可以使用bash刷新一下
然后配置yum

rm -rf /etc/yum.repos.d/*
echo -e "[centos]\nname=centos\nbaseurl=file:///media\n/gpgcheck=0\nenabled=1\n[gpmall]\nname=gpmall\nbaseurl=file:///root/gpmall-repo\ngpgcheck=0\nenabled=1" >> /etc/yum.repos.d/local.repo
mount /root/CentOS-7-x86_64-DVD-1511.iso /media/

然后使用yum安装我们需要的软件

yum install -y java java-devel vim

zookeeper

zookeeper1节点配置
解压zookeeper压缩包

tar -zxvf zookeeper-3.4.14.tar.gz 

修改配置文件

cd /root/zookeeper-3.4.14/conf/
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
#在最下方加入三行
server.1=192.168.200.11:2888:3888
server.2=192.168.200.12:2888:3888
server.3=192.168.200.13:2888:3888
#然后保存退出
 mkdir /tmp/zookeeper
#向/tmp/zookeeper/myid文件中新添加一个1
cat /tmp/zookeeper/myid 
1

zookeeper2节点配置
解压zookeeper压缩包

tar -zxvf zookeeper-3.4.14.tar.gz 

修改配置文件

cd /root/zookeeper-3.4.14/conf/
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
#在最下方加入三行
server.1=192.168.200.11:2888:3888
server.2=192.168.200.12:2888:3888
server.3=192.168.200.13:2888:3888
#然后保存退出
 mkdir /tmp/zookeeper
#向/tmp/zookeeper/myid文件中新添加一个1
cat /tmp/zookeeper/myid 
2

zookeeper3节点配置
解压zookeeper压缩包

tar -zxvf zookeeper-3.4.14.tar.gz 

修改配置文件

cd /root/zookeeper-3.4.14/conf/
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
#在最下方加入三行
server.1=192.168.200.11:2888:3888
server.2=192.168.200.12:2888:3888
server.3=192.168.200.13:2888:3888
#然后保存退出
 mkdir /tmp/zookeeper
#向/tmp/zookeeper/myid文件中新添加一个1
cat /tmp/zookeeper/myid 
3

然后再三个节点上启动zookeeper

/bin/bash /root/zookeeper-3.4.14/bin/zkServer.sh start

可以通过/bin/bash /root/zookeeper-3.4.14/bin/zkServer.sh status 来查看zookeeper的状态

zookeeper1节点

[root@zookeeper1 config]# /bin/bash /root/zookeeper-3.4.14/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/…/conf/zoo.cfg
Mode: follower
[root@zookeeper1 config]#

zookeeper2节点

[root@zookeeper2 config]# /bin/bash /root/zookeeper-3.4.14/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/…/conf/zoo.cfg
Mode: follower
[root@zookeeper2 config]#

zookeeper3节点

[root@zookeeper3 config]# /bin/bash /root/zookeeper-3.4.14/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/…/conf/zoo.cfg
Mode: leader
[root@zookeeper3 config]#

有一个leader是正常的

kafka

zookeeper1配置
解压kafka压缩包

tar -zxvf kafka_2.11-1.1.1.tgz 

修改配置文件

cd /root/kafka_2.11-1.1.1/config/
vim server.properties 
#21行注释
#123行注释
#修改31行
listeners=PLAINTEXT://192.168.200.11:9092
#在文件最下方添加两行内容
broker.id=1
zookeeper.connect=192.168.200.11:2181,192.168.200.12:2181,192.168.200.13:2181

zookeeper2配置
解压kafka压缩包

tar -zxvf kafka_2.11-1.1.1.tgz 

修改配置文件

cd /root/kafka_2.11-1.1.1/config/
vim server.properties 
#21行注释
#123行注释
#修改31行
listeners=PLAINTEXT://192.168.200.12:9092
#在文件最下方添加两行内容
broker.id=2
zookeeper.connect=192.168.200.11:2181,192.168.200.12:2181,192.168.200.13:2181

zookeeper3配置
解压kafka压缩包

tar -zxvf kafka_2.11-1.1.1.tgz 

修改配置文件

cd /root/kafka_2.11-1.1.1/config/
vim server.properties 
#21行注释
#123行注释
#修改31行
listeners=PLAINTEXT://192.168.200.12:9092
#在文件最下方添加两行内容
broker.id=3
zookeeper.connect=192.168.200.11:2181,192.168.200.12:2181,192.168.200.13:2181

然后再三个节点上启动kafka

/root/kafka_2.11-1.1.1/bin/kafka-server-start.sh -daemon /root/kafka_2.11-1.1.1/config/server.properties

可以使用jps查看进程是否运行

[root@zookeeper1 config]# jps
6055 Kafka
6121 Jps
5674 QuorumPeerMain
[root@zookeeper1 config]# 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,以下是一个基本的在k8s上部署zookeeper + kafka集群的配置教程: 1. 创建一个namespace 首先,我们需要创建一个namespace,用于部署zookeeperkafka集群。可以使用以下命令创建一个名为“zookeeper-kafka”的namespace: ``` kubectl create namespace zookeeper-kafka ``` 2. 部署Zookeeper 接下来,我们需要部署Zookeeper。可以使用以下YAML文件创建一个Zookeeper服务: ``` apiVersion: v1 kind: Service metadata: name: zookeeper spec: selector: app: zookeeper ports: - name: client port: 2181 protocol: TCP - name: follower port: 2888 protocol: TCP - name: leader port: 3888 protocol: TCP --- apiVersion: apps/v1 kind: StatefulSet metadata: name: zookeeper spec: serviceName: zookeeper replicas: 3 selector: matchLabels: app: zookeeper template: metadata: labels: app: zookeeper spec: containers: - name: zookeeper image: zookeeper:3.5.8 ports: - name: client containerPort: 2181 - name: follower containerPort: 2888 - name: leader containerPort: 3888 volumeMounts: - name: datadir mountPath: /data env: - name: ZOO_MY_ID valueFrom: fieldRef: fieldPath: metadata.name - name: ZOO_SERVERS value: zookeeper-0.zookeeper:2888:3888,zookeeper-1.zookeeper:2888:3888,zookeeper-2.zookeeper:2888:3888 volumeClaimTemplates: - metadata: name: datadir spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi ``` 这将创建一个3个Pod的Zookeeper StatefulSet,并创建一个名为“zookeeper”的Service,暴露Zookeeper的客户端端口2181,follower端口2888和leader端口3888。 3. 部署Kafka 现在,我们可以部署Kafka。以下是一个Kafka部署的YAML文件示例: ``` apiVersion: v1 kind: Service metadata: name: kafka spec: type: NodePort selector: app: kafka ports: - name: kafka port: 9092 nodePort: 30092 protocol: TCP --- apiVersion: apps/v1 kind: StatefulSet metadata: name: kafka spec: serviceName: kafka replicas: 3 selector: matchLabels: app: kafka template: metadata: labels: app: kafka spec: containers: - name: kafka image: wurstmeister/kafka:2.13-2.7.0 ports: - name: kafka containerPort: 9092 env: - name: KAFKA_BROKER_ID valueFrom: fieldRef: fieldPath: metadata.name - name: KAFKA_ZOOKEEPER_CONNECT value: zookeeper-0.zookeeper:2181,zookeeper-1.zookeeper:2181,zookeeper-2.zookeeper:2181 - name: KAFKA_ADVERTISED_LISTENERS value: PLAINTEXT://$(hostname -f):9092 - name: KAFKA_LISTENERS value: PLAINTEXT://0.0.0.0:9092 - name: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR value: "3" volumeMounts: - name: datadir mountPath: /data volumeClaimTemplates: - metadata: name: datadir spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi ``` 这将创建一个3个Pod的Kafka StatefulSet和一个名为“kafka”的Service,它将Kafka的9092端口暴露为NodePort 30092。 4. 验证部署 现在,您可以使用以下命令检查ZookeeperKafka是否正在运行: ``` kubectl get pods -n zookeeper-kafka ``` 您应该看到3个Zookeeper和3个Kafka Pod处于“Running”状态。 接下来,您可以使用以下命令检查Kafka是否正在监听端口30092(或您自己选择的端口): ``` kubectl get services -n zookeeper-kafka ``` 您应该看到一个名为“kafka”的service,它将Kafka的9092端口暴露为30092端口。可以使用此端口测试Kafka是否正常运行。 至此,您已经成功地在k8s上部署zookeeper + kafka集群
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cc_pwd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值