首页投稿(暂停使用,暂停投稿)程序员

小白也可以轻松搭建一套 Kafka 集群

2016-09-23  本文已影响395人  谢烟客

资源准备

  1. 准备 Linux 服务器 3 台

192.168.9.1
192.168.9.2
192.168.9.3

  1. 安装配置 JDK1.7+(详细操作
  2. 下载 kafka-0.10.0.1
    1 kafka 自身没有实现 paxos 或者 raft (也就没有了强制要求节点数为奇数的限制),因此需要安装配置 zookeeper,虽然 kafka 内置了 zookeeper 但是常规做法还是要使用独立的 zookeeper cluster
  3. 搭建 zookeeper 集群(详细步骤):

服务器初始化

  1. 分别在三台服务器上创建 kafka 用户

root@192.168.9.X # useradd kafka
root@192.168.9.X # echo 'kafka' | passwd --stdin kafka

  1. 分别在三台服务器的 kafka 用户的宿主目录内创建 logs 目录

kafka@192.168.9.X $ mkdir logs

  1. 免密登陆配置(详细操作):
  1. 三台服务器分别执行:kafka@XXXX$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  1. 在192.168.9.1上执行:kafka@XXXX$ ssh-copy-id 192.168.9.2/3

Kafka 集群配置

  1. 将下载好的 kafka_2.10-0.10.0.1.tgz 上传至服务器 192.168.9.1 的 kafka 宿主目录中
  2. 解压并配置 server.property

kafka@192.168.9.X $ vi config/server.properties
####### server.properties 配置信息
broker.id=0 # 每个节点的broker id 必须唯一,从 0 开始自增 + 1
listeners=PLAINTEXT://192.168.9.1:9092 # 由于 0.8.1 有dns 解析的bug,所以从这个版本之后我们使用 listeners 替换 host 的配置
num.network.threads=3 # broker 进行网络处理的线程数
num.io.threads=8 # broker 进行 I/O 处理的线程数
socket.send.buffer.bytes=102400 # send 缓冲区的大小 ,当数据达到一定大小后在整体发出
socket.receive.buffer.bytes=102400 # receive 缓冲区的大小,当数据到达一定大小后在序列化到磁盘
socket.request.max.bytes=104857600 # kafka 请求消息或者向kafka发送消息的最大请求
log.dirs=/home/kafka/logs # kafka数据的存放地址,多个地址的话用逗号分割: /home/kafka/logs-1,/home/kafka/logs-2
num.partitions=1 # 每个topic的分区个数
num.recovery.threads.per.data.dir=1 # 每个数据目录用来日志恢复的线程数目
log.retention.hours=168 # 消息的最大持久化时间:168小时 == 7天
log.segment.bytes=1073741824 # topic的分区是以一堆segment文件存储的,此参数控制每个segment的大小
log.retention.check.interval.ms=300000 # 每隔300000毫秒去检查消息的持久化时间(log.retention.hours=168 ),到目录查看是否有过期的消息,如果有进行删除处理
zookeeper.connect=192.168.9.1:2181,192.168.9.2:2181,192.168.9.3:2181 # 配置 zookeeper cluster
zookeeper.connection.timeout.ms=6000 # zookeeper 调用的超时时间

  1. 将配置完毕后的 kafka_2.10-0.10.0.1 分发到其他2台服务器

kafka@192.168.9.1$ scp -r kafka_2.10-0.10.0.1 kafka@192.168.9.2/3:/home/kafka

  1. 修改 192.168.9.2/3 kafka 的配置文件

kafka@192.168.9.2 $ vi config/server.properties
broker.id=1 # 192.168.9.3 修改为:2
listeners=PLAINTEXT://192.168.9.X:9092 # 修改为当前服务器对应的 IP

  1. 分别在各个节点启动 kafka

kafka@192.168.9.1 $ cd /home/kafka/kafka_2.10-0.10.0.1/bin
kafka@192.168.9.1 $ ./kafka-server-start.sh -daemon ../config/server.properties

如果不出意外,一个简单的三节点 kafka 集群已经搭建完毕 _
上一篇 下一篇

猜你喜欢

热点阅读