欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

Kafka分布式集群部署手册(二)

  在本博客的《Apache Kafka-0.8.1.1源码编译》文章中简单地谈到如何用gradlew或sbt编译Kafka 0.8.1.1的代码。今天主要来谈谈如何部署一个分布式集群。以下本文所有的内容都是基于Kafka 0.8.1.1(Kafka 0.7.x的操作命令和本文略有不同,请注意!)在介绍Kafka分布式部署之前,先来了解一下Kafka的基本概念。
  (1)Kafka维护按类区分的消息,称为主题(topic)
  (2)生产者(producer)向kafka的主题发布消息
  (3)消费者(consumer)向主题注册,并且接收发布到这些主题的消息
  (4)kafka以一个拥有一台或多台服务器的集群运行着,每一台服务器称为broker
  Kafka分布式集群的创建主要有三种模式:
  (1)、Single node – single broker集群;
  (2)、Single node – multiple broker集群;
  (3)、Multiple node – multiple broker集群。
  文章《Kafka分布式集群部署手册(一)》已经介绍了如何部署Kafka的Single node – single broker集群,今天来说说如何部署Single node – multiple broker集群和Multiple node – multiple broker集群。
  

二、Single node – multiple broker集群

  Single node – multiple broker集群的体系结构图如下所示:

Single_node_multiple_broker.jpg欢迎关注微信公共帐号:iteblog_hadoop

  (1)、启动Zookeeper服务
  和Single node – single broker集群的部署一样,这种模式的集群部署也是需要启用Zookeeper。请参见《Kafka分布式集群部署手册(一)》
  (2)、启动Kafka broker服务
  如果需要在单个node上面启动多个brokers,我们需要复制$KAFKA_HOME/config/server.properties文件。如下:

$ cp server.properties server1.properties
$ cp server.properties server2.properties

并最少修改文件 server.properties、server1.properties和 server2.properties里面的以下几个属性:brokerid、port和log.dir。比如:

$ vim server.properties
brokerid = 0
port = 1234
log.dir = /tmp/wyp/kafka_log

$ vim server1.properties
brokerid = 1
port = 1235
log.dir = /tmp/wyp/kafka_log1

$ vim server2.properties
brokerid = 2
port = 1236
log.dir = /tmp/wyp/kafka_log2

不同的配置文件中其中这三个属性的值不要一样,否则会出现问题。在该结点上启动三个broker:

$ bin/kafka-server-start.sh config/server.properties
$ bin/kafka-server-start.sh config/server1.properties
$ bin/kafka-server-start.sh config/server2.properties

  (3)、如何测试?
  创建一个topic

$ bin/kafka-topics.sh --create --zookeeper master:2181,node:2181,node1:2181 \
           --replication-factor 2 --partitions 2 --topic wyp
Created topic "wyp".

  往wyp中发送消息:

$ bin/kafka-console-producer.sh                                 \
  --broker-list localhost:1234,localhost:1235,localhost:1236 --topic wyp
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J:See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Hello Kafka
My name is wyp
This is Guowangjiyi blog

注意--broker-list localhost:1234,localhost:1235,localhost:1236和Single node – single broker集群的--broker-list不同。
  向wyp中拉取消息:

<!---------------------------------------------------------------------
 User: 过往记忆
 Date: 14-6-25
 Time: 15:37
 bolg: 
 本文地址:/archives/1049
 过往记忆博客,专注于hadoop、hive、spark、shark、flume的技术博客,大量的干货
 过往记忆博客微信公共帐号:iteblog_hadoop
--------------------------------------------------------------------->

$ bin/kafka-console-consumer.sh --zookeeper master:2181,node:2181,node1:2181 \
             --topic wyp --from-beginning
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J:See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Hello Kafka
My name is wyp
This is Guowangjiyi blog
Consumed 3 messages

  

三、Multiple node – multiple broker集群

  Multiple node – multiple broker集群的部署和Single node – multiple broker集群很类似,只不过多个broker在不同的node上面,它的体系结构图如下:

Multiple_node_multiple_broker.jpg

所以关于Multiple node – multiple broker集群的部署我就不再介绍了。(完)

本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Kafka分布式集群部署手册(二)】(https://www.iteblog.com/archives/1049.html)
喜欢 (5)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!