kafka命令

Java基础知识——zookeeper,Kafka,设计模式

帅比萌擦擦* 提交于 2019-12-21 01:18:40
Zookeeper:投票机制 实现机制 Kafka:特点 存储机制 应用场景 设计模式:三大原则 工厂抽象工厂单例 Zookeeper 投票机制 1:持久节点(persistent)和临时节点(ephemeral) 持久节点只能通过delete删除。临时节点在创建该节点的客户端崩溃或关闭时,自动被删除。 而leader明显为临时节点 2:仲裁模式:法定人数必须大于一半,即满足多数原则,即可用服务器超过一半才代表系统可用 选取leader的两种情况: 1:开机 在集群正常工作之前,myid小的服务器给myid大的服务器投票 有 5 台服务器,编号分别是 1,2,3,4,5,按编号依次启动: 服务器 1 启动,给自己投票,然后发投票信息,由于其它机器还没有启动所以它收不到反馈信息,服务器 1 的状态一直属于 Looking。 服务器 2 启动,给自己投票,同时与之前启动的服务器 1 交换结果,由于服务器 2 的编号大所以服务器 2 胜出,但此时投票数 没有大于半数(3票) ,所以两个服务器的状态依然是 LOOKING。 服务器 3 启动,给自己投票,同时与之前启动的服务器 1,2 交换信息,由于服务器 3 的编号最大所以服务器 3 胜出,此时投票数正好大于半数,所以服务器 3 成为领导者,服务器 1,2 成为小弟。 服务器 4 启动,给自己投票,同时与之前启动的服务器 1,2,3

Kubernetes+docker-DIY-kafka+zookeeper+manager集群部署

穿精又带淫゛_ 提交于 2019-12-20 23:43:13
前言:最近在给公司搞kafka和zookeeper容器化结合rancher的项目,查阅了相关官网和书籍,发现如果和公司的标准化关联比较牵强,原因有很多,我简单谈一下我最后选择自定义的原因:(因是个人本地二进制部署k8s+kakfa测试的,因此生产需要自己配置所需要的内存和cpu,动态持久化存储等) 1、使用官网dockfile不能自定义jdk。 2、dockerfile和yaml关联比较牵强,每个人有每个人的思路。 3、不能和公司之前物理机部署标准化文档相结合。 ..... 下面,我将花了半个月研究的部署分享一,有兴趣者可加好友共同探讨: https://github.com/renzhiyuan6666666/kubernetes-docker 一、 zookeeper集群部署 1.1) zookeeper文件清单 2. 1.2) zookeeper文件清单详解 1.2.1)oracle jdk软件包  jdk-8u151-linux-x64.tar.gz 底层使用centos6.6镜像,部署目录到app目录下,在dockerfile里面配置环境变量。 1.2.2)zookeeper软件包  zookeeper-3.4.12.tar.gz 底层使用centos6.6镜像,部署目录到app目录下 1.2.3)zookeeper Dockerfile #设置继承镜像 FROM

亿级 ELK 日志平台构建实践

时光怂恿深爱的人放手 提交于 2019-12-20 20:33:00
本篇主要讲工作中的真实经历,我们怎么打造亿级日志平台,同时手把手教大家建立起这样一套亿级 ELK 系统。日志平台具体发展历程可以参考上篇 「从 ELK 到 EFK 演进」 废话不多说,老司机们座好了,我们准备发车了~~~ 整体架构 整体架构主要分为 4 个模块,分别提供不同的功能 Filebeat :轻量级数据收集引擎。基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择。 Kafka : 数据缓冲队列。作为消息队列解耦了处理过程,同时提高了可扩展性。具有峰值处理能力,使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。 Logstash :数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。 Elasticsearch :分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。 Kibana :可视化化平台

kafka环境搭建和使用(python API)

自闭症网瘾萝莉.ら 提交于 2019-12-20 17:25:33
引言 上一篇文章了解了kafka的重要组件zookeeper,用来保存broker、consumer等相关信息,做到平滑扩展。这篇文章就实际操作部署下kafka,用几个简单的例子加深对kafka的理解,学会基本使用kafka。 环境搭建 我将会在本地部署一个三台机器的zookeeper集群,和一个2台机器的kafka集群。 zookeeper集群 zookeeper的搭建可以看我的上一篇文章 分布式系统中zookeeper实现配置管理+集群管理 ,按照步骤,一步步可以很容易的搭建3太服务器的zookeeper集群。跟之前一样,我还是在本地的3个端口搭建了3台服务器,地址如下所示: 192.168.0.105:2181 192.168.0.105:2182 192.168.0.105:2183 这三台服务器一会儿会在kafka配置中用到。 kafka集群 第一步. 下载kafka 到kafka官网下载 apache kafka ,解压到 /path/to/kafka 目录。 第二步. 修改配置文件 复制 /path/to/kafka/config/server.properties ,到 /path/to/kafka/config/server-1.properties 和 /path/to/kafka/config/server-2.properties

kafka topic 删除

随声附和 提交于 2019-12-19 08:47:13
kafka topic 删除 方法一:通过kafka 命令来删除 方法二:使用zookeeper来删除topic 要删除的topic 名字为 test。 方法一:通过kafka 命令来删除 1.1 通过集群管理工具如ambari设置delete.topic.enable=true delete.topic.enable 1.2 通过kafka命令 删除topic ${KAFKA_HOME}/bin/kafka-topics.sh --delete --zookeeper hostname:2181 --topic test 执行完后,topic会被标记为删除状态,随后被删除。但是如果topic正在被使用,则topic不会被删除,这种情况下需要使用zookeeper来删除,见步骤二。 方法二:使用zookeeper来删除topic 2.1 通过集群管理工具如ambari 暂时关闭kafka。 2.2 通过zookeeper 来删除topic信息。 使用zkCli.sh 连接zookeeper ${zookeeper_home}/bin/zkCli.sh 删除topic # 查看topic信息 get /brokers/topics/test # 删除topic信息 rmr /brokers/topics/test rmr /admin/delete_topics/test

kafka使用指南

≯℡__Kan透↙ 提交于 2019-12-17 21:42:34
快速开始 本教程假设您刚刚开始,并且没有现有的Kafka或ZooKeeper数据。由于Kafka控制台脚本对于基于Unix和Windows的平台是不同的,因此在Windows平台上使用bin\windows\而不是bin/将脚本扩展名更改为.bat。 第1步:下载代码 下载 2.0.0版本并解压缩它。 1 2 tar -xzf kafka_2.11-2.0.0.tgz cd kafka_2.11-2.0.0 第2步:启动服务器 Kafka使用ZooKeeper,因此如果您还没有ZooKeeper服务器,则需要先启动它。您可以使用与kafka一起打包的便捷脚本来获取快速且脏的单节点ZooKeeper实例。 1 2 3 bin/zookeeper-server-start.sh config/zookeeper.properties [2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig) ... 现在启动Kafka服务器: 1 2 3 4 bin/kafka-server-start.sh config/server.properties [2013-04-22

kafka在windows下的安装和配置

♀尐吖头ヾ 提交于 2019-12-17 17:52:55
博主最近在学习有关kafka的配置安装以及在spring的集成使用。但网上关于kafka的配置参考资料基本都是于linux下的配置,于是博主在整理了相关windows下kafka的配置记录在博客里。由于是简单配置所以在这里只建了一个topic以及一个producer和两个consumer。 关于kafka具体是什么以及他的设计原理使用场景等等请看上篇博客,转自大佬。传送门: http://www.cnblogs.com/wdfordream/p/7324975.html 。 在官网上下载 zookeeper和kafka( 我下的版本kafka_2.11-0.11.0.0,这个版本中bin目录下有windows目录 ),注意不要下载源码包(名字中带有src),否则启动的时候会报错。 1、配置好jdk环境 2、解压zookeeper到指定目录,找到解压后目录中conf文件夹中zoo_sample - 副本.cfg文件,复制在conf中改名为zoo.cfg。在bin文件夹中打开zkServer.bat启动zookeeper。 至此,zookeeper启动完成。 3、解压kafka到指定目录。查看kafka根目录中config文件夹下server.properties,确认其中关于zookeeper的连接端口和zookeep中zoo.cfg的端口一致。   3.1、启动kafka  

Go实现海量日志收集系统(二)

天大地大妈咪最大 提交于 2019-12-16 23:33:26
一篇文章主要是关于整体架构以及用到的软件的一些介绍,这一篇文章是对各个软件的使用介绍,当然这里主要是关于架构中我们agent的实现用到的内容 关于zookeeper+kafka 我们需要先把两者启动,先启动zookeeper,再启动kafka 启动ZooKeeper:./bin/zkServer.sh start 启动kafka:./bin/kafka-server-start.sh ./config/server.properties 操作kafka需要安装一个包:go get github.com/Shopify/sarama 写一个简单的代码,通过go调用往kafka里扔数据: package main import ( "github.com/Shopify/sarama" "fmt" ) func main() { config := sarama.NewConfig() config.Producer.RequiredAcks = sarama.WaitForAll config.Producer.Partitioner = sarama.NewRandomPartitioner config.Producer.Return.Successes = true msg := &sarama.ProducerMessage{} msg.Topic = "nginx_log"

kafka partition(分区)与 group

。_饼干妹妹 提交于 2019-12-16 21:36:42
1、原理图 2、原理描述 一个topic 可以配置几个partition,produce发送的消息分发到不同的partition中,consumer接受数据的时候是按照group来接受,kafka确保每个partition只能同一个group中的同一个consumer消费,如果想要重复消费,那么需要其他的组来消费。Zookeerper中保存这每个topic下的每个partition在每个group中消费的offset 新版kafka把这个offsert保存到了一个__consumer_offsert的topic下 这个__consumer_offsert 有50个分区,通过将group的id哈希值%50的值来确定要保存到那一个分区. 这样也是为了考虑到zookeeper不擅长大量读写的原因。 所以,如果要一个group用几个consumer来同时读取的话,需要多线程来读取,一个线程相当于一个consumer实例。当consumer的数量大于分区的数量的时候,有的consumer线程会读取不到数据。 假设一个topic test 被groupA消费了,现在启动另外一个新的groupB来消费test,默认test-groupB的offset不是0,而是没有新建立,除非当test有数据的时候,groupB会收到该数据,该条数据也是第一条数据

Kafka消息和offset存储

不羁的心 提交于 2019-12-16 17:32:37
前言 Kafka具有存储功能,默认保存数据时间为7天或者大小1G,也就是说kafka broker上的数据超7天或者1G,就会被清理掉。这些数据存放在broker服务器上,以log文件的形式存在。 准备工作 topic 我添加了一个topic名字为demo1。为了方便观察,它只有一个分区,一个副本。 kafka-topics.sh --zookeeper localhost:2181/kafka1 --desc --topic demo1 producer 通过producer推送了11条数据 kafka-console-producer.sh --broker-list localhost:9092 --topic demo1 日志 log的路径配置在conf/server.properties配置文件中,我的日志路径配置在log1文件夹下。log文件的命名那一长串0,是这个日志文件的offset位置。当日志文件达到时间或者大小的上限时,就会生成下一个日志文件,命名的就是下一个offset位置了。 查看日志内容 log日志文件是二进制文件,无法通过文本查看,但是可以通过kafka.tools.DumpLogSegments类的方法,可以查看日志的内容。 bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files .