| kafka集群环境部署记录 |
| ip地址 主机名 安装软件 |
| 192.168.248.134 kafka01 zookeeper、kafka |
| 192.168.248.135 kafka02 zookeeper、kafka |
| 192.168.248.136 kafka03 zookeeper、kafka |
| 192.168.248.139 kafka-manager kafka-manager |
| |
| |
| 4台机器关闭iptables和selinux |
| [root@kafka01 ~] |
| [root@kafka01 ~] |
| ...... |
| SELINUX=disabled |
| [root@kafka01 ~] |
| [root@kafka01 ~] |
| Permissive |
| |
| 4台机器做hosts绑定 |
| [root@kafka01 ~] |
| ...... |
| 192.168.248.134 kafka01 |
| 192.168.248.135 kafka02 |
| 192.168.248.136 kafka03 |
| 192.168.248.139 kafka-manager |
| |
| |
| jdk安装(四台机器都要操作,安装1.7以上版本) |
| 安装及配置kafka(192.168.248.134、192.168.248.135 、192.168.248.136三台机器如下同样操作) |
| |
| 1)安装三个节点的zookeeper |
| [root@kafka01 ~] |
| [root@kafka01 src] |
| [root@kafka01 src] |
| [root@kafka01 src] |
| [root@kafka01 src] |
| |
| 修改三个节点的zookeeper的配置文件,内容如下所示: |
| [root@kafka01 src] |
| [root@kafka01 src] |
| [root@kafka01 src] |
| [root@kafka01 src] |
| tickTime=2000 |
| initLimit=10 |
| syncLimit=5 |
| dataDir=/data/zk/data/zookeeper |
| dataLogDir=/data/zk/data/logs |
| clientPort=2181 |
| maxClientCnxns=60 |
| autopurge.snapRetainCount=3 |
| autopurge.purgeInterval=1 |
| server.1=192.168.248.134:2888:3888 |
| server.2=192.168.248.135:2888:3888 |
| server.3=192.168.248.136:2888:3888 |
| |
| =============== |
| 配置参数说明: |
| server.id=host:port:port:表示了不同的zookeeper服务器的自身标识,作为集群的一部分,每一台服务器应该知道其他服务器的信息。 |
| 用户可以从"server.id=host:port:port" 中读取到相关信息。 |
| 在服务器的data(dataDir参数所指定的目录)下创建一个文件名为myid的文件,这个文件的内容只有一行,指定的是自身的id值。 |
| 比如,服务器"1"应该在myid文件中写入"1"。这个id必须在集群环境中服务器标识中是唯一的,且大小在1~255之间。 |
| 这一样配置中,zoo1代表第一台服务器的IP地址。第一个端口号(port)是从follower连接到leader机器的端口,第二个端口是用来进行leader选举时所用的端口。 |
| 所以,在集群配置过程中有三个非常重要的端口:clientPort=2181、port:2888、port:3888。 |
| =============== |
| |
| 注意:如果想更换日志输出位置,除了在zoo.cfg加入"dataLogDir=/data/zk/data/logs"外,还需要修改zkServer.sh文件,大概修改方式地方在 |
| 125行左右,内容如下: |
| [root@kafka01 src] |
| [root@kafka01 src] |
| ....... |
| 125 ZOO_LOG_DIR="$($GREP "^[[:space:]]*dataLogDir" "$ZOOCFG" | sed -e 's/.*=//')" |
| 126 if [ ! -w "$ZOO_LOG_DIR" ] ; then |
| 127 mkdir -p "$ZOO_LOG_DIR" |
| 128 fi |
| |
| [root@kafka01 src] |
| 125d124 |
| < ZOO_LOG_DIR="$($GREP "^[[:space:]]*dataLogDir" "$ZOOCFG" | sed -e 's/.*=//')" |
| |
| 在启动zookeeper服务之前,还需要分别在三个zookeeper节点机器上创建myid,方式如下: |
| [root@kafka01 src] |
| [root@kafka01 src] |
| |
| ================================================================= |
| 另外两个节点的myid分别为2、3(注意这三个节点机器的myid决不能一样,配置文件等其他都是一样配置) |
| [root@kafka02 src] |
| [root@kafka02 src] |
| |
| [root@kafka03 src] |
| [root@kafka03 src] |
| ================================================================= |
| |
| 启动三个节点的zookeeper服务 |
| [root@kafka01 src] |
| ZooKeeper JMX enabled by default |
| Using config: /data/zk/bin/../conf/zoo.cfg |
| Starting zookeeper ... STARTED |
| [root@kafka01 src] |
| root 25512 1 0 11:49 pts/0 00:00:00 /usr/java/jdk1.8.0_131/bin/java -Dzookeeper.log.dir=/data/zk/data/logs -Dzookeeper.root.logger=INFO,CONSOLE -cp /data/zk/bin/../build/classes:/data/zk/bin/../build/lib/*.jar:/data/zk/bin/../lib/slf4j-log4j12-1.6.1.jar:/data/zk/bin/../lib/slf4j-api-1.6.1.jar:/data/zk/bin/../lib/netty-3.10.5.Final.jar:/data/zk/bin/../lib/log4j-1.2.16.jar:/data/zk/bin/../lib/jline-0.9.94.jar:/data/zk/bin/../zookeeper-3.4.10.jar:/data/zk/bin/../src/java/lib/*.jar:/data/zk/bin/../conf:.:/lib/dt.jar:/lib/tools.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /data/zk/bin/../conf/zoo.cfg |
| root 25555 24445 0 11:51 pts/0 00:00:00 grep zookeeper |
| [root@kafka01 src] |
| COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME |
| java 25512 root 23u IPv6 8293793 0t0 TCP *:eforward (LISTEN) |
| |
| 查看三个节点的zookeeper角色 |
| [root@kafka01 src] |
| ZooKeeper JMX enabled by default |
| Using config: /data/zk/bin/../conf/zoo.cfg |
| Mode: follower |
| |
| [root@kafka02 src] |
| ZooKeeper JMX enabled by default |
| Using config: /data/zk/bin/../conf/zoo.cfg |
| Mode: leader |
| |
| [root@kafka03 src] |
| ZooKeeper JMX enabled by default |
| Using config: /data/zk/bin/../conf/zoo.cfg |
| Mode: follower |
| |
| ————————————————————————————————————————————————————————————————————————————————————————————— |
| 2)安装kafka(三个节点同样操作) |
| 下载地址:http://kafka.apache.org/downloads.html |
| [root@kafka01 ~] |
| [root@kafka01 src] |
| [root@kafka01 src] |
| [root@kafka01 src] |
| |
| 进入kafka下面的config目录,修改配置文件server.properties: |
| [root@kafka01 src] |
| [root@kafka01 src] |
| broker.id=0 |
| delete.topic.enable=true |
| listeners=PLAINTEXT://192.168.248.134: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=/data/kafka/data |
| num.partitions=1 |
| num.recovery.threads.per.data.dir=1 |
| offsets.topic.replication.factor=1 |
| transaction.state.log.replication.factor=1 |
| transaction.state.log.min.isr=1 |
| log.flush.interval.messages=10000 |
| log.flush.interval.ms=1000 |
| log.retention.hours=168 |
| log.retention.bytes=1073741824 |
| log.segment.bytes=1073741824 |
| log.retention.check.interval.ms=300000 |
| zookeeper.connect=192.168.248.134:2181,192.168.248.135:2181,192.168.248.136:2181 |
| zookeeper.connection.timeout.ms=6000 |
| group.initial.rebalance.delay.ms=0 |
| |
| 其他两个节点的server.properties只需要修改下面两行,其他配置都一样 |
| [root@kafka02 src] |
| [root@kafka02 src] |
| broker.id=1 |
| ...... |
| listeners=PLAINTEXT://192.168.10.203:9092 |
| ....... |
| |
| [root@kafka03 src] |
| [root@kafka03 src] |
| broker.id=2 |
| ...... |
| listeners=PLAINTEXT://192.168.10.205:9092 |
| ...... |
| |
| 启动三个节点的kafka服务 |
| [root@kafka01 src] |
| [root@kafka01 src] |
| COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME |
| java 26114 root 97u IPv6 8298666 0t0 TCP kafka01:XmlIpcRegSvc (LISTEN) |
| java 26114 root 113u IPv6 8298672 0t0 TCP kafka01:53112->kafka01:XmlIpcRegSvc (ESTABLISHED) |
| java 26114 root 114u IPv6 8298673 0t0 TCP kafka01:XmlIpcRegSvc->kafka01:53112 (ESTABLISHED) |
| |
| 验证服务 |
| 随便在其中一台节点主机执行 |
| [root@kafka01 src] |
| 出现下面信息说明创建成功 |
| Created topic "test". |
| |
| 然后再在其他主机查看上面创建的topic |
| [root@kafka02 src] |
| test |
| |
| 到此,kafka集群环境已部署完成! |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通