`
拓子轩
  • 浏览: 211814 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Kafka多节点环境安装

    博客分类:
  • java
阅读更多

4.3.1 安装多节点ZooKeeper集群

目前来说Kafka可以说是强依赖ZooKeeper的,因此生产环境中一个高可用、高可靠的ZooKeeper集群也必不可少的。ZooKeeper集群通常被称为一个ensemble。只要这个ensemble中的大多数节点存活,那么ZooKeeper集群就能正常提供服务。显然,既然是大多数,那么最好使用奇数个服务器,即2n+1个服务器,这样整个ZooKeeper集群最多可以容忍n台服务器宕机而保证依然提供服务。如果使用偶数个服务器则通常会浪费一台服务器的资源。

基于上面的规则,一个生产环境中最少的ZooKeeper集群节点数量是3。在实际使用场景中,5台服务器构成的ZooKeeper集群也是十分常见的,再多数量的集群则不常见。

典型的多节点环境配置文件zoo.cfg

tickTime=2000

dataDir=/usr/zookeeper/data_dir

clientPort=2181

initLimit=5

syncLimit=2

server.1=zk1:2888:3888

server.2=zk2:2888:3888

server.3=zk3:2888:3888

关键参数的含义:

  • tickTime: ZooKeeper最小的时间单位,用于丈量心跳时间和超时时间等。通常设置成默认值2秒即可。
  • dataDirZooKeeper会在内存中保存系统快照,并定期写入该路径指定的文件夹中。生产环境中需要注意该文件夹的磁盘占用情况。
  • clientPortZooKeeper监听客户端连接的端口,一般设置成默认值2181即可。
  • initLimit:指定follower节点初始时连接leader节点的最大tick次数。假设是5,表示follower必须在5*tickTime时间内(默认值10秒)连接上leader,否则将被视为超时。
  • syncLimit:设定follower节点与leader节点进行同步的最大时间。与initLimit类似,它也是以tickTime为单位进行指定的。
  • server.X=host:port:port:配置文件中的最后三行都是这种形式的。这里的X必须是一个全局唯一的数字,且需要与myid文件中的数字相对应。一般设置X1-255之间的整数。这行的后面还配置了两个端口,通常是28882888。第一个端口用于使follower节点连接leader节点,而第二个端口则用于leader选举。

 

      每个ZooKeeper服务器都有一个唯一的ID。这个ID主要用在两个地方:一个是刚刚我们配置的zoo.cfg文件,另一个则是myid文件。myid文件位于zoo.cfgdataDir配置的目录下,其内容也很简单,仅是一个数字,即ID

 

下面就以一台机器为例展示如何安装3个节点的ZooKeeper集群,多台机器上安装的方法类似。

首先,在zookeeperconf目录下创建3个配置文件zoo1.cfgzoo2.cfgzoo3.cfg,注意,如果是在多台服务器上安装ZooKeeper集群,可以选取相同的配置文件名字。

zoo1.cfg

tickTime=2000

dataDir=/mnt/disk/huxitest/data_logs/zookeeper1

clientPort=2181

initLimit=5

syncLimit=2

server.1=zk1:2888:3888

server.2=zk2:2889:3889

server.3=zk3:2890:3890

zoo2.cfg

tickTime=2000

dataDir=/mnt/disk/huxitest/data_logs/zookeeper2

clientPort=2182

initLimit=5

syncLimit=2

server.1=zk1:2888:3888

server.2=zk2:2889:3889

server.3=zk3:2890:3890

zoo3.cfg

tickTime=2000

dataDir=/mnt/disk/huxitest/data_logs/zookeeper3

clientPort=2183

initLimit=5

syncLimit=2

server.1=zk1:2888:3888

server.2=zk2:2889:3889

server.3=zk3:2890:3890

上面的配置中分别选取了2181218221833个端口。如果是多机器安装方案,指定相同的端口号也可以,只要确保没有端口冲突就行,这也包括配置文件中的所有其他端口。

下一步是创建myid文件,myid文件必须位于配置文件的dataDir中,即/mnt/disk/huxitest/data_logs/zookeeper1,2,3下,具体命令如下:

echo "1" > /mnt/disk/huxitest/data_logs/zookeeper1/myid

echo "2" > /mnt/disk/huxitest/data_logs/zookeeper2/myid

echo "3" > /mnt/disk/huxitest/data_logs/zookeeper3/myid

下一步就是启动3个控制台终端分别在ZooKeeper的安装目录下执行以下命令启动ZooKeeper服务器:

java -cp zookeeper-3.4.10.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.16.jar:conf org.apache.zookeeper.server.quorum.QuorumPeerMain conf/zoo1.cfg

java -cp zookeeper-3.4.10.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.16.jar:conf org.apache.zookeeper.server.quorum.QuorumPeerMain conf/zoo2.cfg

java -cp zookeeper-3.4.10.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.16.jar:conf org.apache.zookeeper.server.quorum.QuorumPeerMain conf/zoo3.cfg

如果是多节点安装方案,既可以使用上面的命令启动ZooKeeper,也可以直接运行zkServer脚本启动ZooKeeper,比如:

bin/zkServer.sh(bat) start conf/zoo.cfg

当所有的ZooKeeper服务器启动成功后,我们还需要检查一下整个集群的状态,分别执行以下命令:

bin/zkServer.sh status conf/zoo1.cfg

bin/zkServer.sh status conf/zoo2.cfg

bin/zkServer.sh status conf/zoo3.cfg

 

4.3.2 安装多节点的Kafka

下面使用一台机器来模拟一个3节点Kafka集群的搭建,多台机器搭建的方式类似。

创建多份配置,配置文件1

broker.id=0

delete.topic.enable=true

listeners=PLAINTEXT://kafka1:9092

log.dirs=/mnt/disk/huxitest/data_logs/kafka1

zookeeper.connect=zk1:8001,zk2:8002,zk3:8003

unclean.leader.election.enable=false

zookeeper.connection.timeout.ms=6000

配置文件2

broker.id=1

delete.topic.enable=true

listeners=PLAINTEXT://kafka2:9092

log.dirs=/mnt/disk/huxitest/data_logs/kafka2

zookeeper.connect=zk1:8001,zk2:8002,zk3:8003

unclean.leader.election.enable=false

zookeeper.connection.timeout.ms=6000

配置文件3

broker.id=2

delete.topic.enable=true

listeners=PLAINTEXT://kafka3:9092

log.dirs=/mnt/disk/huxitest/data_logs/kafka3

zookeeper.connect=zk1:8001,zk2:8002,zk3:8003

unclean.leader.election.enable=false

zookeeper.connection.timeout.ms=6000

    在上面3个配置文件中我们需要每台Kafka服务器指定不同的broker ID。该ID在整个集群中必须是唯一的。而配置listeners时最好使用节点的FQDNFully Qualified Domain Name)即全称域名,尽量不要使用IP地址。zookeeper.connect必须同时指定所有的ZooKeeper节点。

 

创建Kafka配置文件后,只需要执行下列命令启动Kafka broker服务器:

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

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

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

可以通过查看位于Kafka logs目录下的server.logjps命令来确认Kafka broker是否已经启动成功。

分享到:
评论

相关推荐

    Zookeeper以及kafka单节点发、服务部署

    通过以上步骤,我们可以完成Zookeeper和Kafka单节点环境的部署与配置。需要注意的是,在实际生产环境中,通常会采用多节点集群的方式以提高系统的稳定性和可用性。但对于学习和测试目的而言,单节点部署已经足够满足...

    kafka0.10软件包以及安装步骤 - 副本.rar

    确保你的系统中已经安装了Java运行环境(JRE),因为Kafka是基于Java的。 2. **配置环境变量**:将Kafka的bin目录添加到系统的PATH环境变量中,这样可以在任何地方运行Kafka的命令行工具。 3. **配置Kafka**:在`...

    linux-单节点的一个kafka容器环境包括zookeeperkafkakafkaeagle

    单节点的一个kafka容器环境,包括zookeeper、kafka、kafka eagle

    Kafka集群搭建(3台机)

    搭建Kafka集群涉及到对虚拟机的安装配置、JDK环境的搭建、Zookeeper的安装配置等关键步骤。下面详细介绍各个知识点。 首先,虚拟机的安装是搭建Kafka集群的基础。文中提到了使用VMWare来安装三台虚拟机,并分配了...

    Kafka集群配置样例_3节点_源码

    每个Kafka节点(Broker)都需要一个`server.properties`配置文件,其中包含许多关键配置项: 1. `broker.id`: 每个Broker的唯一标识,通常从0开始,按顺序分配。 2. `log.dirs`: 存储Kafka日志数据的目录路径,应...

    kafka0.8软件包以及安装步骤.rar

    1. **Broker**: Kafka集群中的服务器节点,负责存储和转发消息。 2. **Topic**: 消息的主题,可以理解为消息的分类或者频道。 3. **Partition**: Topic的逻辑分片,每个Partition在物理上存储在不同的Broker上,提供...

    linux安装kafka监控EFAK安装.docx

    EFAK(原名为Kafka Eagle)是一个专门用于Kafka集群监控的开源工具,它提供了丰富的可视化界面,可以帮助管理员轻松地监控Kafka节点的状态、消费组、主题等信息。在本教程中,我们将介绍如何在Linux系统上安装并配置...

    Kafka分布式集群安装部署.doc

    (1)准备环境:安装Java环境、ZooKeeper环境和Kafka环境。 (2)创建Kafka集群:创建多个Kafka broker节点,组成Kafka集群。 (3)配置Kafka集群:配置Kafka集群的参数,例如副本因子、分区数量等。 (4)启动...

    安装kafka的安装方法,以及需要的程序。

    至此,你已经成功启动了单个Kafka节点。如果你想创建主题或者生产消费消息,可以使用Kafka的命令行工具,如`kafka-topics.sh`和`kafka-console-producer.sh`。 此外,提供的文件列表中还有“KAFKA开发.docx”和...

    kafka全套资源环境+demo

    总结来说,这个"Kafka全套资源环境+demo"是一个全面的学习资源,它覆盖了从安装配置到实际编程的所有环节,对于想深入了解和使用Kafka的Java开发者来说,是一份极具价值的参考资料。通过深入研究和实践,开发者不仅...

    Kafka安装与部署指南

    1. **broker.id**: 每个Kafka节点都需要一个唯一的ID。 2. **zookeeper.connect**: 指定连接的ZooKeeper集群地址,格式为:`hostname1:port1,hostname2:port2,...`。 3. **log.dirs**: Kafka数据存储的位置,可设置...

    kafka安装与配置

    1. **broker.id**: 每个Kafka节点都有一个唯一的ID,用于标识自己。 2. **listeners**: 定义Kafka服务器监听的端口和协议,如`PLAINTEXT://localhost:9092`。 3. **advertised.listeners**: 用于客户端连接的主机和...

    Kafka集群及Kafka-Manager安装部署.docx

    ### Kafka集群及Kafka-Manager安装部署 #### 一、Kafka集群的安装与配置 **1. 工作环境准备** - **JDK**:确保安装了JDK 1.8.0_60版本。这一步骤至关重要,因为Kafka依赖于Java运行时环境。 - **Zookeeper**...

    Kafka安装文档和安装包

    5. **代理(Broker)**:Kafka集群由多个节点组成,每个节点称为代理。代理负责存储和转发消息,确保数据的持久性和可用性。 6. **ZooKeeper**:Kafka使用ZooKeeper进行配置管理、命名服务、集群协调和故障检测。...

    kafka单机版自动安装shell脚本

    在Kafka单机版环境中,尽管没有涉及到集群的复杂性,但理解如何配置和管理单个节点对于学习Kafka的工作原理和后期扩展至多节点集群至关重要。这个自动安装脚本简化了这一过程,使得开发者和运维人员能更专注于Kafka...

    windows-kafka安装.rar

    例如,设置`broker.id`(每个Kafka节点的唯一标识)、`listeners`(监听地址和端口)和`zookeeper.connect`(连接ZooKeeper的配置)。 4. **安装ZooKeeper**: Kafka依赖ZooKeeper进行集群管理和元数据存储。确保你...

    Kafka安装(安装与配置).pdf

    ### Kafka安装与配置详解 #### 一、Kafka简介 Apache Kafka是一种分布式流处理平台,主要功能包括发布和订阅记录流、存储记录流并可靠地处理这些记录流。Kafka适用于离线和在线的消息消费,如常规的消息收集、网站...

    Kafka Tool linux版本,适用于kafka0.11及以上

    6. **监控与诊断**:Kafka Tool可以监控Kafka节点的性能指标,如CPU、内存使用率等,以及各种错误和警告信息,帮助定位问题。 7. **安全支持**:如果Kafka集群启用了SASL/SSL或Kerberos等安全机制,Kafka Tool也能...

Global site tag (gtag.js) - Google Analytics