Kafka集群怎样部署

这篇文章主要介绍Kafka集群怎样部署,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联建站公司2013年成立,是专业互联网技术服务公司,拥有项目网站建设、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元望花做网站,已为上家服务,为望花各地企业和个人服务,联系电话:028-86922220

1 Kafka Cluster的部署

由于Kafka 集群需要依赖ZooKeeper集群,所以这里我们需要事先搭建好ZK集群(可与kafka集群分离),我这里kafka和zk并没有安在同一机器上,而是直接使用的hadoop集群里的zk。

 server列表
kafka集群slave4,slave5,slave6
zookeeper集群master1,master2,slave1

首先,我们将下载好的Kafka安装包kafka_2.9.1解压,命令如下所示:

  • 解压Kafka到slave4

[hadoop@slave4~]$ tar -zxvf kafka_2.9.1-0.8.2.1.tgz
  • 进入到Kafka解压目录

[hadoop@slave4~]$ cd kafka_2.9.1-0.8.2.1
  • 配置环境变量

[hadoop@slave4~]$ vi /etc/profile
export KAFKA_HOME=/home/hadoop/kafka_2.9.1-0.8.2.1
export PATH=$PATH:$KAFKA_HOME/bin
  • 配置Kafka的zookeeper.properties 

# the directory where the snapshot is stored.
dataDir=/home/hadoop/data/zk
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
  • 配置server.properties

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0

# Zookeeper connection string
# comma separated host:port pairs, each corresponding to a zk
zookeeper.connect=master1:2181,master2:2181,slave1:2181

注:这里配置broker的时候,每台机器上的broker保证唯一,从0开始。如:在另外2台机器上分别配置broker.id=1,broker.id=2

  • 配置producer.properties

# list of brokers used for bootstrapping knowledge about the rest of the cluster
# format: host1:port1,host2:port2 ...
metadata.broker.list=slave4:9092,slave5:9092,slave6:9092
  • 配置consumer.properties

# Zookeeper connection string
# comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"
zookeeper.connect=master1:2181,master2:2181,slave1:2181

至此,Kafka 集群部署完成。

2. kafka集群简单例子测试

启动

首先,在启动Kafka集群服务之前,确保我们的ZK集群已启动,下面我们启动Kafka集群服务。启动命令如下所示:

[hadoop@slave4 kafka_2.11-0.8.2.1]$ kafka-server-start.sh config/server.properties &

注:其他2个节点参照上述方式启动。

另外,启动其他节点的时候,在最先开始启动的节点会显示其它节点加入的信息记录。

验证启动进程

[hadoop@slave4 kafka_2.11-0.8.2.1]$ jps
2049 QuorumPeerMain
2184 Kafka
2233 Jps

创建Topic

在服务启动后,我们开始创建一个Topic,命令如下所示:

[hadoop@slave4 ]$ kafka-topics.sh --zookeeper master1:2181,master2:2181,slave1:2181 --topic test1 --replication-factor 3 --partitions 1 --create

我们可以查看该Topic的相关信息,命令如下所示:

[hadoop@slave4 ]$ kafka-topics.sh --zookeeper master1:2181,master2:2181,slave1:2181 --topic test1 --describe

下面解释一下这些输出。第一行是对所有分区的一个描述,然后每个分区都会对应一行,因为我们只有一个分区所以下面就只加了一行。

  • Leader:负责处理消息的读和写,Leader是从所有节点中随机选择的。

  • Replicas:列出了所有的副本节点,不管节点是否在服务中。

  • Isr:是正在服务中的节点

生产消息

下面我们使用kafka的Producer生产一些消息,然后让Kafka的Consumer去消费,命令如下所示:

[hadoop@slave4 ]$ kafka-console-producer.sh --broker-list slave4:9092,slave5:9092,slave6:9092 --topic test1

Kafka集群怎样部署

消费消息

接着,我们在另外一个节点启动消费进程,来消费这些消息,命令如下所示:

[hadoop@slave5 ]$ kafka-console-consumer.sh --zookeeper master1:2181,master2:2181,slave1:2181 --from-beginning --topic test1

消费记录如下图所示:

Kafka集群怎样部署

3.HA特性

这里,从上面的截图信息可以看出,在slave4节点上Kafka服务是Lead,我们先将slave4节点的Kafka服务kill:

[hadoop@slave4 config]$ jps
2049 QuorumPeerMain
2375 Jps
2184 Kafka
[hadoop@slave4 config]$ kill -9 2184

然后,其他节点立马选举出了新的Leader,如下图所示:

Kafka集群怎样部署

下面,我们来测试消息的生产和消费,如下图所示:

  • 生产消息

Kafka集群怎样部署

通过测试,可以发现,Kafka的HA特性还是不错的,拥有不错的容错机制。

以上是“Kafka集群怎样部署”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


本文标题:Kafka集群怎样部署
本文地址:http://myzitong.com/article/jdicpe.html