Kafka: Linux环境-单机部署和伪集群、集群部署

1. Kafka单机部署

1.1 下载zookeeper压缩包

到官网下载zookeeper压缩包,如下:

1.2 安装zookeeper

(1)上传zookeepe压缩包,并解压:

tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz

拷贝安装包到/usr/local/目录下:

cp -r apache-zookeeper-3.7.1-bin /usr/local/zookeeper

进入到 conf 目录,看到 zoo_sample.cfg 文件,cp 复制生成 zoo.cfg 文件,如下:

 cp conf/zoo_sample.cfg conf/zoo.cfg

(2)启动并查看状态

启动zookeeper
./bin/zkServer.sh start
查看zookeeper状态
./bin/zkServer.sh status

 standalone代表单机启动。

1.3 下载kafka压缩包

到官网下载kafka压缩包,如下

1.4安装kafka

(1)上传kafka安装包到服务器 /opt 目录下,解压kafka安装包:

tar -zxvf kafka_2.13-3.1.0.tgz

cp -r kafka_2.13-3.1.0 /usr/local/kafka

cd /usr/local/kafka

(2)修改配置,此配置用于消息发布与订阅的ip。进入到 conf 目录,在config/server.properties 文件,并做如下修改:

 vim config/server.properties
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://127.0.0.1:9092

将listeners的ip修改为当前部署kafka的服务器ip。单机部署,可以修改为127.0.0.1或localhost;集群则需要修改为服务器的 ip 地址。

(3)启动kafka

./bin/kafka-server-start.sh config/server.properties &

(4)新建topic并查看状态

新建topic:

[root@9e02276c1212 kafka]# ./bin/kafka-topics.sh --create --topic test1 --bootstrap-server 127.0.0.1:9092

Created topic test1.

">"后后面的内容就是新建的topic。

查看状态:

[root@9e02276c1212 kafka]# ./bin/kafka-topics.sh --describe --topic test1 --bootstrap-server 127.0.0.1:9092
2
Topic: test1    TopicId: XCJCzuz5T_ac-cpbUdsBcg PartitionCount: 1       ReplicationFactor: 1    Configs: segment.bytes=1073741824
        Topic: test1    Partition: 0    Leader: 0       Replicas: 0     Isr: 0

然后zoo.cfg指定的目录就有了topic了,默认配置是 /tmp/kafka-logs 目录下:

(5)生产消息和消费消息

# 生产消息
./bin/kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic test2
# 消费消息
./bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test2 --from-beginning

消息消费过程:

(6)停止kafka

./kafka-server-stop.sh

2. Kafka伪集群

在同一台服务器上,以不同端口(2181,2182,2183)运行三个zookeeper,形成一个伪集群。

2.1 zookeeper 集群安装

(1)下载安装包,并上传解压到/opt目录下

(2)复制集群节点

cp -r /opt/apache-zookeeper-3.7.1-bin /usr/local/zookeeper-2181

(3)创建目录

mkdir /usr/local/zookeeper-2181/data
mkdir /usr/local/zookeeper-2181/logs

(4)修改配置文件

cd /usr/local/zookeeper-2181/conf/
cp zoo_sample.cfg zoo.cfg

修改dataDir,clientPort两个配置项

dataDir=/usr/local/zookeeper-2181/data
clientPort=2181

并添加以下配置项

dataLogDir=/usr/local/zookeeper-2181/logs
server.1=192.168.126.135:2287:3387
server.2=192.168.126.135:2288:3388
server.3=192.168.126.135:2289:3389

data目录下创建myid文件

cd /usr/local/zookeeper/zookeeper-2181/data
vim myid

myid中指定节点id在一个集群中不能重复。例如:将2181节点的id设置为12182节点设置为22183节点设置为3.

[root@linkhot local]# cat /usr/local/zookeeper-2181/data/myid
1

(5)复制多个zookeeper

cd /usr/local/
cp -r zookeeper-2181 zookeeper-2182
cp -r zookeeper-2181 zookeeper-2183

修改conf/zoo.cfg配置文件中的配置,参考第4小节

(6)修改内存大小

在各个节点的配置目录下,新增配置配置文件

cd /usr/local/zookeeper-2181/conf
vim zkEnv.sh

添加以下内容

#!/bin/sh
export JVMFLAGS="-Xms100m -Xmx100m $JVMFLAGS"

(7)启动zookeeper

进入到每个zookeeper中,启动zookeeper

cd /usr/local/zookeeper-2181
./bin/zkServer.sh start conf/zoo.cfg

(8)查看zookeeper运行状态

for i in {1,2,3}; do sh /usr/local/zookeeper-218${i}/bin/zkServer.sh status; done

 查看某个节点的状态

/usr/local/zookeeper-2181/bin/zkServer.sh status

2.2 kafka 伪集群安装

(1)下载安装包并解压到/opt目录下

(2)复制解压的安装包文件到/usr/local目录下:

 cp -r /opt/kafka_2.13-3.1.0 /usr/local/kafka-9091/

(3)新建日志目录:

mkdir -p /usr/local/kafka-9091/logs

(4)修改配置文件

cd /usr/local/kafka-9091/conf

修改配置文件server.properties

broker.id=1
listeners=PLAINTEXT://192.168.126.135:9091
log.dirs=/usr/local/kafka-9091/logs
zookeeper.connect=192.168.126.135:2181,192.168.126.135:2182,192.168.126.135:2183
  • broker.id:节点id,在同一个集群中,不能重复
  • listeners:节点监听的端口,在同一台机器上,也不能相同
  • log.dris:存储数据的位置
  • zookeeper.connectzookeeper集群的连接地址

(5)复制多

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值