Kafka Manager

当 Kafka 分区不可用且 leader 副本被损坏时,如何尽量减少数据的丢失?

谁都会走 提交于 2020-03-25 10:40:55
3 月,跳不动了?>>> 经过上次 Kafka 日志集群某节点重启失败导致某个主题分区不可用的事故之后,这篇文章专门对分区不可用进行故障重现,并给出我的一些骚操作来尽量减少数据的丢失。 故障重现 下面我用一个例子重现现分区不可用且 leader 副本被损坏的例子: 使用 unclean.leader.election.enable = false 参数启动 broker0; 使用 unclean.leader.election.enable = false 参数启动 broker1; 创建 topic-1,partition=1,replica-factor=2; 将消息写入 topic-1; 此时,两个 broker 上的副本都处于 ISR 中,broker0 的副本为 leader 副本; 停止 broker1,此时 topic-1 的 leader 依然时 broker0 的副本,而 broker1 的副本从 ISR 中剔除; 停止 broker0,并且删除 broker0 上的日志数据 ; 重启 broker1,topic-1 尝试连接 leader 副本,但此时 broker0 已经停止运行,此时分区处于不可用状态,无法写入消息; 恢复 broker0,broker0 上的副本恢复 leader 职位, 此时 broker1 尝试加入 ISR,但此时由于 leader

关于kafka监控工具

二次信任 提交于 2020-03-20 16:02:32
3 月,跳不动了?>>> 概述 Apache Kafka 是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统, 使用 Scala 与 Java 语言编写,能够将消息从一个端点传递到另一个端点。 较之传统的消息中间件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容错的特性,非常适合大规模消息处理应用程序。 kafka官网 Kafka 通常用于两大类应用程序: 建立实时流数据管道,以可靠地在系统或应用程序之间获取数据。 构建实时流应用程序,以转换或响应数据流。 kafka监控 kafka搭建好投入使用后,为了运维更便捷,借助一些管理工具很有必要。目前Kafka监控方案看似很多,然而并没有一个“大而全”的通用解决方案,各家框架也是各有千秋。 常见监控工具 Kafka Manager Kafka Offset Monitor Kafka Eagle JmxTool ... ... 工具比较 安装环境:Centos 7.6 工具名称 特点 备注 Kafka Manager 实现broker级常见的JMX监控; 能对consumer消费进度进行监控; 还能在页面上直接对多个集群进行管理。 编译安装,比较耗时; 不能进行访问控制; 不能配置告警; 耗费内存。 Kafka Eagle 能够实现broker级常见的JMX监控;

CentOS-Docker搭建Kafka(单点,含:zookeeper、kafka-manager)

一笑奈何 提交于 2020-03-12 11:26:03
下载相关容器 $ docker pull wurstmeister/zookeeper $ docker pull wurstmeister/kafka $ docker pull sheepkiller/kafka-manager 运行相关容器 启动zookeeper $ docker run -d --name zookeeper --publish 2181:2181 \ -v /etc/localtime:/etc/localtime --restart=always wurstmeister/zookeeper 启动kafka $ docker run -d --name kafka --publish 9082:9092 \ --link zookeeper:zookeeper \ --env KAFKA_BROKER_ID=100 \ --env HOST_IP=192.168.1.108 \ --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ --env KAFKA_ADVERTISED_HOST_NAME=192.168.1.108 \ --env KAFKA_ADVERTISED_PORT=9082 \ -v /etc/localtime:/etc/localtime --restart=always

kafka_0.10.1.0监控及管理

北慕城南 提交于 2020-03-01 05:53:06
kafka_0.10.1.0监控及管理 1. kafka监控 kafka自身没有监控管理页面,无论是进行一些管理操作还是状态的监控都要命令加一大堆记不住的参数,实在是很不方便,不过好在在github上开源了一些工具,在kafka的 生态系统 中也有提及到: Kafka Manager: 都是以表格的形式展现数据,比较方便用来管理kafka,例如topic的创建、删除以及分区的管理等。 Kafka Offset Monitor: 监控消费者以及所在分区的offset,帮助分析当前的消费以及生产是否顺畅,功能比较单调但界面还可以。 Kafka Web Console: github 上已经说明了不再更新了,且建议使用Kafka manager kafkat: 一个简化了的命令行工具,用来管理kafka的broker,partition,topic. Capillary: 如果是kafka+storm集成使用,可以选择该工具,是一个web应用 除了前面两个,其它几个都没试用过,就算在网上查也是推荐前两个而已,kafka manager基于jmx功能比较强大,利用它做管理方面;而KafkaOffsetMonitor从它的启动参数来看应该是定时从zookeeper上获取消费者的offset,以图的形式展示,比较直观(对于一些实现Exactly once的系统

Centos7安装kafka-manager

旧巷老猫 提交于 2020-02-27 08:16:45
简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作。具体支持以下内容: 管理多个集群 轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发) 运行首选副本选举 使用选项生成分区分配以选择要使用的代理 运行分区重新分配(基于生成的分配) 使用可选主题配置创建主题(0.8.1.1具有与0.8.2+不同的配置) 删除主题(仅支持0.8.2+并记住在代理配置中设置delete.topic.enable = true) 主题列表现在指示标记为删除的主题(仅支持0.8.2+) 批量生成多个主题的分区分配,并可选择要使用的代理 批量运行重新分配多个主题的分区 将分区添加到现有主题 更新现有主题的配置 支持ldap用户认证 kafka-manager 项目地址: https://github.com/yahoo/kafka-manager 安装 当前版本已更新至3.0.0.1,本次安装最新版本。 下载安装包 下载方式: 下载源码包: https://github.com/yahoo/kafka-manager/releases (不同版本) 克隆源代码: git clone https://github.com/yahoo/CMAK.git (最新版本) 编译 根据README提示,新版本编译依赖

【Kafka】- 监控工具kafka-manager

你。 提交于 2019-12-02 06:57:03
Kafka_web_console: 项目已不支持,推荐kafka-manager(yahoo开源) Kafka-manager配置步骤: 下载sbt: https://www.scala-sbt.org/download.html 配置sbt:配置国内镜像源(类似maven仓库),加快sbt编译速度 下载kafka-manager源码包: 下载地址 解压源码包、编译:sbt clean dist: 编译成kafka-manager-1.3.3.17.zip(target目录):时间可能会长一些。 配置kafka-manger: kafka-manager-1.3.3.17/conf/application.conf 启动kafka-manager: (启动zk->启动kafka->启动kafka-manager) 命令:kafka-manager(缺省参数默认application.conf配置) 访问kafka-manager: debian:9000(默认端口,可配置) 添加需要监控的kafka集群 Cluster Name: 监控集群的配置名称 Cluster Zookeeper hosts: 协调kafka配置信息的zk地址 注意: 部分kafka监控功能是通过JMX实现的,因此启动依赖JMX相关的功能时需在kafka启动之前设置JMX_PORT属性

聊聊storm的OpaquePartitionedTridentSpoutExecutor

感情迁移 提交于 2019-12-02 06:21:30
序 本文主要研究一下storm的OpaquePartitionedTridentSpoutExecutor TridentTopology.newStream storm-core-1.2.2-sources.jar!/org/apache/storm/trident/TridentTopology.java public Stream newStream(String txId, IOpaquePartitionedTridentSpout spout) { return newStream(txId, new OpaquePartitionedTridentSpoutExecutor(spout)); } TridentTopology.newStream方法,对于IOpaquePartitionedTridentSpout类型的spout会使用OpaquePartitionedTridentSpoutExecutor来包装;而KafkaTridentSpoutOpaque则实现了IOpaquePartitionedTridentSpout接口 TridentTopologyBuilder.buildTopology storm-core-1.2.2-sources.jar!/org/apache/storm/trident/topology

kafka-manager 安装

我是研究僧i 提交于 2019-12-01 02:49:39
1、kafka-manager 雅虎大佬 kafka-manager 2、安装部署 2.1 安装sbt 1、下载sbt: sbt 2、安装参考地址: sbt-安装 2.2 安装kafka-manager 1、下载编译 git clone https://github.com/yahoo/kafka-manager.git cd kafka-manager sbt clean dist 注: 执行sbt编译打包可能花费很长时间,如果你hang在如下情况: 2、友情提供 由于编译那一步超级慢,我已经提供了编译好的kafka-mannager,百度网盘地址: [kafka-manager编译版本](链接: https://pan.baidu.com/s/1VIcqou8e8P55s65RCG_bCg ) 提取码: 8vvj 3、安装 unzip kafka-manager-1.3.3.18.zip -d /usr/local cd /usr/local/kafka-manager-1.3.3.18 修改配置 conf/application.properties 如果zk是集群,这里填写多个zk地址 : kafka-manager.zkhosts="127.0.0.1:2181,127.0.0.2:2181,127.0.0.3:2181" 4、启动 kafka-manager

kafka-manager安装

落爺英雄遲暮 提交于 2019-11-29 21:08:21
1.下载相应的版本: https://github.com/yahoo/kafka-manager/releases?after=1.3.3.14 2.解压到相应的目录下面 3.添加启动脚本start-kafka-manager.sh 8787 是对应的端口可以自己修改 #!/bin/bash ./kafka-manager -Dconfig.file=/home/kafka-manager-1.3.3.7/conf/application.conf -Dhttp.port=8787 > /dev/null 2>&1 & 4.添加守护脚本kafka-manager-dog.sh #!/bin/bash num=`netstat -ntlp | grep -w 8787 | wc -l` echo $num if [ $num -ne 1 ];then cd /home/kafka-manager-1.3.3.7/bin ./star-kafka-manager.sh fi 5.添加定时运行job crontab -l //查看定时任务 crontab -e //编辑定时任务 6.启动start-kafka-manager.sh 可能遇见异常: kafka-manager_1 | akka.ConfigurationException: Logger specified in

centos7.6设置开机启动

旧时模样 提交于 2019-11-28 19:48:05
由于这几天在学习kafka的相关内容,在oracle 虚拟机设置了3台centos7.6版本的服务器需要开机启动kafka和kafka-manager。 首先创建一个启动脚本 daemon.sh #!/bin/bash JAVA_HOME=/usr/local/jdk1.8.0_201 PATH=$JAVA_HOME/bin:$PATH /usr/local/kafka/kafka_2.11-2.2.0/bin/kafka-server-start.sh -daemon /usr/local/kafka/kafka_2.11-2.2.0/config/server.properties & cd /usr/local/kafka-manager/kafka-manager-2.0.0.2/bin/ nohup ./kafka-manager -Dhttp.port=9000 -Dconfig.file=/usr/local/kafka-manager/kafka-manager-2.0.0.2/conf/application.conf & 然后将 /etc/rc.d/rc.local 加入启动脚本 (需要将/etc/rc.d/rc.local文件设置成可运行文件) 来源: https://my.oschina.net/jjjjjjjjjjj11111/blog/3098798