kafka_2.11-0.11.0.1集群搭建
            
                        声明:本文转载自https://my.oschina.net/eacdy/blog/1574016,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。
                        
            
                                             本文搭建一个三节点的Kafka集群。该集群有三个Zookeeper、三个Kafka Broker。
 一、准备工作
  -  解压kafka安装包,获得如下目录: unzip kafka_2.11-0.11.0.1.zip kafka_2.11-0.11.0.1 
 
-  Kafka目录结构: cd kafka_2.11-0.11.0.1 tree -L 1 
 展示如下内容: . ├── LICENSE ├── NOTICE ├── bin ├── config ├── libs ├── logs └── site-docs 
 
二、搭建Zookeeper集群
  -  将目录切换到Kafka的config目录,要修改的主要是server.properties以及zookeeper.properties两个配置文件。
 server.properties					kafka配置文件 zookeeper.properties				zookeeper配置文件 
 对Kafka感兴趣的童鞋们可前往 https://www.cnblogs.com/jun1019/p/6256371.html 了解Kafka常用配置属性详解。 
-  修改zookeeper.properties:
 initLimit=10 syncLimit=5 dataDir=/Users/apple/Desktop/zookeeper  # zookeeper的快照存储地址 clientPort=2181							# zookeeper端口 maxClientCnxns=0						# 单个客户端与单台服务器之间的连接数的限制 server.1=IP1:2888:3888		# server.x中的x要与myid中的数字一致,2888用于follower与leader之间的数据同步与其他通信;3888用于leader选举时的通信。 server.2=IP2:2889:3889 server.3=IP3:2890:3890 
 Zookeeper配置详解可参考:http://blog.csdn.net/lengzijian/article/details/9226867 
-  将目录切换到dataDir目录,并创建myid文件,内容分别是1、2、3。注意myid的内容要与server.x中的x相一致。
 cd /Users/apple/Desktop/zookeeper vim myid 
 
-  三台机器都配置好zookeeper.properties并创建myid文件后,即可进行测试。依次在三台机器上执行如下命令,即可启动Zookeeper集群。
 cd kafka_2.11-0.11.0.1 # 切换到你的Kafka目录 nohup bin/zookeeper-server-start.sh config/zookeeper.properties & 
 
-  观察启动日志,确认启动无误。 
三、搭建Kafka集群
 搭建完Zookeeper集群后,Kafka集群的搭建就完成了一大半。下面我们来搭建Kafka集群:
  -  在Kafka的config目录下创建文件server-cluster.properties,在其中填写如下内容:
 broker.id=1						# kafka broker的id,三个节点不能相同 listeners=PLAINTEXT://:9094		# kafka所使用的端口 log.dir=/tmp/kafka-logs			# kafka日志路径 zookeeper.connect=xxx,yyy,zzz	# Zookeeper集群的地址列表,IP:PORT的形式,多个用,分隔 
 当然,这里server-cluster.properties名称不是强制的,你可以叫其他名字;不仅如此,也可直接修改server.properties。
 
-  依次在三台机器执行如下命令,启动Kafka cd kafka_2.11-0.11.0.1 # 切换到你的Kafka目录 bin/kafka-server-start.sh config/server-cluster.properties & 
 
-  观察启动日志,确认启动无误。 
四、验证Kafka集群正常工作
  -  创建一个Topic,其中的xxx、yyy、zzz是Zookeeper的地址,形式为IP:PORT bin/kafka-topics.sh --create --zookeeper xxx,yyy,zzz --replication-factor 3 --partitions 1 --topic my-replicated-topic 
 
-  我们现在已经搭建了一个Kafka集群,并创建了一个Topic,但我们如何知道每个broker在做什么呢?可使用describe topics命令:
 bin/kafka-topics.sh --describe --zookeeper xxx,yyy,zzz --topic my-replicated-topic  Topic:my-replicated-topic	PartitionCount:1	ReplicationFactor:3	Configs: 	Topic: my-replicated-topic	Partition: 0	Leader: 1	Replicas: 1,3,2	Isr: 1,3,2 
 其中,第一行是对所有partition的摘要,每个附加行给出了每个partition的详情,这里只有一个partition,所以只有一行。 leader是负责给定partition所有读写的节点,每个节点将称为partition随机选择部分的leader。 replicas是复制此partition日志的节点列表,无论它们是否leader,即使它们处于活动状态。 isr是一组in-sync副本,这是replicas列表的子集,这些副本当前活动,并被引导到leader。
  笔者按:isr常被翻译成“副本同步队列”。 leader、replicas、isr可参考:https://www.cnblogs.com/mengyou0304/p/4836555.html 
 
-  创建一个生产者: bin/kafka-console-producer.sh --broker-list kafka集群地址列表 --topic my-replicated-topic 
 地址为IP:PORT的形式,多个用逗号分隔 
-  另启一个窗口,创建消费者: bin/kafka-console-consumer.sh --bootstrap-server kafka地址 --from-beginning --topic my-replicated-topic 
 kafka地址为IP:PORT的形式,为Kafka集群中的任意一个节点。 
-  在生产者窗口输入任意文字,看在消费者窗口能否接收。如果能正常接收,说明Kafka集群搭建成功。 
五、界面管理
 参考笔者博客Kafka Manager管理Kafka集群:http://www.itmuch.com/work/kafka-manager/
 六、参考文档
                    
                        
                              
                              
                
                
                  
                    
                      
                      
                         
                        抱拳了,老铁!
                       
                     
                   
                 
             
            
                本文发表于2017年11月15日 18:34 
                                (c)注:本文转载自https://my.oschina.net/eacdy/blog/1574016,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除. 
                                阅读 2550 讨论 0 喜欢 0