一.概念
百度概念,可以根据相关资料来理解。
1.1Kafka是一个高吞吐量的分布式发布-订阅消息系统,可以处理消费者规模网站中的所有动作流数据。
经纪人
Kafka集群包含一个或多个服务器,称为代理。
主题
每一条发布到Kafkacluster的消息都有一个类别,叫做Topic。(物理上,不同主题的消息分开存储。从逻辑上讲,尽管一个主题的消息存储在一个或多个代理上,但是用户只需要指定消息的主题就可以生成或使用数据,而不管数据存储在哪里。)
划分
分区是一个物理概念,每个主题包含一个或多个分区。
生产者
负责向Kafkabroker发布消息
消费者
消息消费者,从Kafkabroker读取消息的客户端。
消费者群体
每个使用者属于一个特定的使用者组(您可以为每个使用者指定一个组名,或者如果您不指定组名,它将是默认组)。
1.2ZooKeeper是一个分布式开源的分布式应用协调服务,是Google的Chubby的开源实现,也是Hadoop和Hbase的重要组成部分。它是为分布式应用提供一致性服务的软件,功能包括配置维护、域名服务、分布式同步、群组服务等。
ZooKeeper的基本 *** 作流程:
1.选举领导人。
2.同步数据。
3.领袖选举过程中有很多算法,但要满足的选举标准是一样的。
4.领导者应该拥有最高的执行ID,类似于root权限。
5.集群中的大多数机器得到响应并跟随所选的领导者。
1.3kafka-manager为了简化开发人员和服务工程师维护kafka集群的工作,雅虎构建了一个基于web的工具,名为KafkaManager。这种管理工具可以很容易地发现哪些分布在集群中的主题是不均匀分布的,或者分区在整个集群中是不均匀分布的。它支持管理多个集群、选择副本、重新分发副本和创建主题。同时,这个管理工具也是一个非常好的快速浏览这个集群的工具,具有以下功能:
1.管理多个kafka集群
2。方便的查看kafka集群的状态(主题,代理,备份分布,分区情况)
3。选择您要运行的副本
4。根据当前的分区情况进行
5。您可以选择主题配置并创建主题(配置主题(0.8.1.1和0.8.2是不同的)
6。删除主题(仅支持0.8.2以上版本,应在代理配置中设置delete.topic.enable=true)
7.主题列表会注明删除了哪些主题(适用于0.8.2以上版本)
8。为现有主题添加分区
9。更新现有主题配置
10。对多个主题进行批量重新分区
11。对多个主题进行批量重新分区(可选的分区代理位置)
卡夫卡-经理项目地址:https://github.com/yahoo/kafka-manager
二。部署
2.1初始化环境
初始化系统,关闭防火墙并修改主机名和ip名。
主机名
互联网协议(InternetProtocol)
卡夫卡-1
172.17.10.207
2卡夫卡-2
172.17.10.208
3卡夫卡-3
172.17.10.209
2.2java安装
yuminstall-yjava-1.8.0-openjdk
2.3安装zookeeper(三套都已安装)
cd /usr/local wget http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz tar zxf zookeeper-3.4.9.tar.gz mv zookeeper-3.4.9 zookeeper cd zookeeper/conf cp zoo_sample.cfg zoo.cfg编辑zoo.cfg
tickTime=2000 #服务之间或者客户端与服务段之间心跳时间 initLimit=10 #Follower启动过程中,从Leader同步所有最新数据的时间 syncLimit=5 #Leader与集群之间的通信时间 dataDir=/usr/local/zookeeper/data #zookeeper存储数据 datalogDir=/usr/local/zookeeper/logs #zookeeper存储数据的日志 clientPort=2181 #zookeeper默认端口 #集群配置信息 server.1=172.17.10.207:2888:3888 server.2=172.17.10.208:2888:3888 server.3=172.17.10.209:2888:3888Server.1这个1是服务器的标识符或者其他数字,表示服务器的编号,用来标识服务器。这个标识符应该写入快照目录下的myid文件。
#172.17.10.207是集群中的IP地址。第一个端口是主从之间的通信端口,默认端口是2888。第二个端口是领导人选举端口。当集群启动时,或者当领导者挂断电话并进行新的选举时,默认端口是3888。
完整配置
cd /usr/local/zookeeper mkdir data logs #创建数据与日志文件夹 cd data echo “1”>myid #第2 台zookeeper服务器就echo 2 /usr/local/zookeeper/bin/zkServer.sh start #启动2.4安装kafka(三套全部安装)
wget http://apache.fayea.com/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz tar zxf kafka_2.11-0.10.0.0.tgz mv kafka_2.11-0.10.0.0/ kafka cd kafka/config编辑服务器属性
broker.id=1 #kafka集群标识,不能相同,第一台是1以此类推,其他都一样。 log.dirs=/usr/local/kafka-logs host.name=172.17.10.184 #主机ip zookeeper.connect=172.17.10.185:2181,172.17.10.184:2181,172.17.10.183:2181 mkdir /usr/local/kafka/kafka-logs /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties & #启动kafka检查启动是否成功。
netstat-ntpl|grep9092
2.4安装kafka-manager
git clone https://github.com/yahoo/kafka-manager cd kafka-manager sbt clean distcd #过程比较长获取文件Kafka-manager-1.3.0.8.zip。
unzip kafka-manager-1.3.0.8.zip -d /usr/local cd /usr/local/kafka-manager-1.3.0.8 修改配置 conf/application.properties # 如果zk是集群,这里填写多个zk地址 kafka-manager.zkhosts="172.17.10.185:2181,172.17.10.184:2181,172.17.10.183:2181"开始
kafka-manager 默认的端口是9000,可通过 -Dhttp.port,指定端口; -Dconfig.file=conf/application.conf指定配置文件: nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080 &浏览器访问
三。测试
测试卡夫卡。分别创建主题、生产者和消费者,最好是在不同的节点上。在生产者的控制台上输入信息,看消费者的控制台是否能接收到。
3.1创建主题
./kafka-topics.sh --create --zookeeper 172.17.10.207:2181,172.17.10.208:2181,172.17.10.209:2181 --replication-factor 3 --partitions 3 --topic xuel-replication-factor指定分区的副本数,建议设置为2;
-partitions指定分区的数量。这个参数需要根据经纪人数量和数据量来确定。正常情况下,每个代理上的两个分区是最好的;
-主题xuel主题是xuel。
3.2检查主题
./kafka-topics.sh --describe --zookeeper 172.17.10.207:2181,172.17.10.208:2181,172.17.10.209:2181 --topic xuel通过web界面创建主题-{1-4}
3.3删除主题
./kafka-topics.sh --delete --zookeeper 172.17.10.207:2181,172.17.10.208:2181,172.17.10.209:2181 --topic xuel3.4创建发布者
在服务器上创建发布者(发布者发送消息)
创建代理
./kafka-console-producer.sh --broker-list 172.17.10.173:9092,172.17.10.172:9092,172.17.10.171:9092,172.17.10.170:9092 --topic xuel3.5创建消费者
在服务器上创建订阅者(订阅者接受消息)
./kafka-console-consumer.sh --zookeeper 172.17.10.173:2181,172.17.10.172:2181,172.17.10.171:2181,172.17.10.170:2181 --from-beginning --topic xuel3.6通过web界面查看
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)