kafka_2.12集群布署

下载kafka:

https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.5.0/kafka_2.12-2.5.0.tgz

配置JDK环境:

echo "export JAVA_HOME=/usr/local/jdk" >> /etc/profile

echo "export CLASSPATH=\$JAVA_HOME/lib:\$CLASSPATH" >> /etc/profile

echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile

source /etc/profile

tar -xf kafka_2.12-2.5.0.tgz

mv kafka_2.12-2.5.0 /usr/local/kafka

cd /usr/local/kafka/

 

1、zookeeper集群配置

mkdir -p /data/zookeeper

修改各节点zookeeper.properties配置文件如下:

192.168.199.140

创建集群ID文件:echo 1 > /data/zookeeper/myid

dataDir=/data/zookeeper

clientPort=2181

maxClientCnxns=0

admin.enableServer=true

admin.serverPort=8080

initLimit=5

syncLimit=2

server.1=192.168.199.140:2888:3888

server.2=192.168.199.141:2888:3888

server.3=192.168.199.142:2888:3888

192.168.199.141

创建集群ID文件:echo 2 > /data/zookeeper/myid

dataDir=/data/zookeeper

clientPort=2181

maxClientCnxns=0

admin.enableServer=true

admin.serverPort=8080

initLimit=5

syncLimit=2

server.1=192.168.199.140:2888:3888

server.2=192.168.199.141:2888:3888

server.3=192.168.199.142:2888:3888

192.168.199.142

创建集群ID文件:echo 3 > /data/zookeeper/myid

dataDir=/data/zookeeper

clientPort=2181

maxClientCnxns=0

admin.enableServer=true

admin.serverPort=8080

initLimit=5

syncLimit=2

server.1=192.168.199.140:2888:3888

server.2=192.168.199.141:2888:3888

server.3=192.168.199.142:2888:3888

配置释义:

initLimit:允许follower与leader连接和同步的时间,如果ZooKeeper管理的数据量很大,可以根据需要增加这个值。

syncLimit:允许followerleader同步的时间,如果follower远远落后于leader,他们将被丢弃。

maxClientCnxns:限制单个客户端(IP地址标识)ZooKeeper集成中的单个成员的并发连接数(在套接字级别)。这是用来防止某些类型的DoS攻击,包括文件描述符耗尽。默认值是60。将此值设置为0完全删除了并发连接的限制。

admin.enableServer:是否开启管理服务

admin.serverPort=8080:管理服务开放端口

clientPort:监听客户端连接的端口

server.id=host:port:port 对于每台服务器,您首先需要指定一个仲裁端口,然后为ZooKeeper leader选举指定一个专用端口

更多配置参数参考官网:

https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_zkMulitServerSetup

各节点启动zookeeper:

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

集群管理命令:

url示例:/commands/[command name]

更多命令参考官网:

https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_configuration

查看zookeeper集群服务状态:

http://192.168.199.142:8080/commands/stat

curl http://localhost:8080/commands/stat

由此查看到目前192.168.199.142这台是leader节点。

 

 

2、kafka集群配置(server.properties)

192.168.199.140

broker.id=0

listeners=PLAINTEXT://192.168.199.140:9092

advertised.listeners=PLAINTEXT://192.168.199.140:9092

num.network.threads=3

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=/tmp/kafka-logs

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=2

transaction.state.log.replication.factor=1

transaction.state.log.min.isr=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=192.168.199.140:2181,192.168.199.141:2181,192.168.199.142:2181

zookeeper.connection.timeout.ms=18000

group.initial.rebalance.delay.ms=0

192.168.199.141

broker.id=1

listeners=PLAINTEXT://192.168.199.141:9092

advertised.listeners=PLAINTEXT://192.168.199.141:9092

num.network.threads=3

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=/tmp/kafka-logs

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=2

transaction.state.log.replication.factor=1

transaction.state.log.min.isr=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=192.168.199.140:2181,192.168.199.141:2181,192.168.199.142:2181

zookeeper.connection.timeout.ms=18000

group.initial.rebalance.delay.ms=0

192.168.199.142

broker.id=2

listeners=PLAINTEXT://192.168.199.142:9092

advertised.listeners=PLAINTEXT://192.168.199.142:9092

num.network.threads=3

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=/tmp/kafka-logs

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=2

transaction.state.log.replication.factor=1

transaction.state.log.min.isr=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=192.168.199.140:2181,192.168.199.141:2181,192.168.199.142:2181

zookeeper.connection.timeout.ms=18000

group.initial.rebalance.delay.ms=0

参数参考官网:

http://kafka.apache.org/documentation/#connect_configuring

各节点启动kafka:

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

创建topic:

bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.199.140:9092

查看topic详细信息:

bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server 192.168.199.140:9092

模拟生产者写消息:

$ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.199.140:9092

This is my first event

This is my second event

模拟消费者读消息:

$ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.199.140:9092
This is my first event
This is my second event

集群部署完成。

部署 Kafka 2.12-2.7.0 集群涉及多个步骤,包括准备环境、配置 ZooKeeper、设置 Kafka Broker 以及启动和验证集群。以下是详细的指南: ### 环境准备 1. **Java 安装** Kafka 依赖 Java 运行时环境,建议使用 Java 8 或更高版本。可以通过以下命令检查 Java 版本: ```bash java -version ``` 2. **下载 Kafka** 从 Apache Kafka 官方网站下载 Kafka 2.12-2.7.0 版本: ```bash wget https://archive.apache.org/dist/kafka/2.7.0/kafka_2.12-2.7.0.tgz ``` 3. **解压 Kafka** 解压下载的 Kafka 压缩包: ```bash tar -xzf kafka_2.12-2.7.0.tgz cd kafka_2.12-2.7.0 ``` ### 配置 ZooKeeper 1. **编辑 ZooKeeper 配置文件** 打开 `config/zookeeper.properties` 文件,并根据需要调整配置。例如,修改数据目录: ```properties dataDir=/path/to/zookeeper/data ``` 2. **启动 ZooKeeper** 使用以下命令启动 ZooKeeper: ```bash bin/zookeeper-server-start.sh config/zookeeper.properties ``` ### 配置 Kafka Broker 1. **编辑 Kafka 配置文件** 打开 `config/server.properties` 文件,并根据需要调整配置。对于集群部署,需要确保每个 Broker 的 `broker.id`、`listeners` 和 `log.dirs` 不同: ```properties broker.id=1 listeners=PLAINTEXT://:9092 log.dirs=/path/to/kafka/logs zookeeper.connect=localhost:2181 ``` 2. **复制配置文件** 如果需要在多台机器上部署 Kafka Broker,可以将 `server.properties` 文件复制到其他节点,并调整相应的配置参数。 ### 启动 Kafka Broker 1. **启动 Kafka Broker** 使用以下命令启动 Kafka Broker: ```bash nohup bin/kafka-server-start.sh config/server.properties > /path/to/kafka/logs/kafka.log 2>&1 & ``` 使用 `nohup` 命令可以确保 Kafka 服务器在后台运行,并将输出保存到文件中,即使关闭终端或退出当前会话,Kafka 仍然可以持续运行[^1]。 ### 验证集群 1. **创建主题** 使用以下命令创建一个主题: ```bash bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 2 ``` 2. **列出主题** 使用以下命令列出所有主题: ```bash bin/kafka-topics.sh --list --bootstrap-server localhost:9092 ``` 3. **生产消息** 使用以下命令生产消息: ```bash bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092 ``` 4. **消费消息** 使用以下命令消费消息: ```bash bin/kafka-console-consumer.sh --topic test-topic --bootstrap-server localhost:9092 --from-beginning ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值