Apache Storm 官方文档 —— Metrics
Storm 提供了一个可以获取整个拓扑中所有的统计信息的度量接口。Storm 内部通过该接口可以跟踪各类统计数字:executor 和 acker 的数量、每个 bolt 的平均处理时延、worker 使用的最大堆容量等等,这些信息都可以在 Nimbus 的 UI 界面中看到。
Metric 类型
使用 Metrics 只需要实现一个接口方法:getValueAndReset
,在方法中可以查找汇总值、并将该值复位为初始值。例如,在 MeanReducer 中就实现了通过运行总数除以对应的运行计数的方式来求取均值,然后将两个值都重新设置为 0。
Storm 提供了以下几种 metric 类型:
- AssignableMetric — 将 metric 设置为指定值。此类型在两种情况下有用:1. metric 本身为外部设置的值;2. 你已经另外计算出了汇总的统计值。
- CombinedMetric — 可以对 metric 进行关联更新的通用接口。
- CountMetric — 返回 metric 的汇总结果。可以调用
incr()
方法来将结果加一;调用incrBy(n)
方法来将结果加上给定值。- MultiCountMetric — 返回包含一组 CountMetric 的 HashMap
- ReducedMetric
- MeanReducer — 跟踪由它的
reduce()
方法提供的运行状态均值结果(可以接受Double
、Integer
、Long
等类型,内置的均值结果是Double
类型)。MeanReducer 确实是一个相当棒的家伙。 - MultiReducedMetric — 返回包含一组 ReducedMetric 的 HashMap
- MeanReducer — 跟踪由它的
Metric Consumer
构建自定义 metric
内建的 Metric
builtin_metrics.clj 为内建的 metrics 设置了数据结构,以及其他框架组件可以用于更新的虚拟方法。metrics 本身是在回调代码中实现计算的 — 请参考 executor.clj
中的 ack-spout-msg
的例子。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Apache Storm 官方文档 —— 使用非 JVM 语言开发
两个部分:创建拓扑,以及使用其他语言实现 spouts 与 bolts 由于 Storm 的拓扑都是基于 thrift 结构的,所以使用其他语言创建拓扑也是一件很容易的事情 使用其他语言实现的 spouts 与 bolts 称为“多语言组件”(multilang components)或者“脱壳”(shelling) 这是具体的实现协议:多语言接口协议 thrift 结构允许你定义以一个程序和脚本的方式定义多语言组件(例如,可以使用 python 程序和文件实现 bolt) 在 Java 中,需要覆写 ShellBolt 或者 ShellSpout 来创建多语言组件 注意,输出域是在 thrift 结构中声明的,所以在 Java 中你需要这样创建多语言组件: 在 Java 中声明域,并通过在 shellbolt 的构造器中指定输出域来处理其他语言的代码 多语言组件在 STDIN/STDOUT 中使用 JSON 消息来和子进程通信 已经实现了 Ruby,Python 等语言的相关协议,例如,python 支持 emit、anchor、ack 与 log等操作 “storm shell” ...
- 下一篇
Apache Storm 官方文档 —— Hooks
Storm 提供了一种 hooks 机制,可以实现在 Storm 的各种事件流中运行自定义代码的功能。可以通过继承BaseTaskHook类来创建 hook,还可以根据需要在继承的子类中覆写适当的方法来跟踪相关事件。 注册 hook 有两种方法: 在 spout 的 open 方法或者 bolt 的 prepare 方法中使用TopologyContext#addTaskHook方法; 使用 Storm 配置表中的topology.auto.task.hooks配置项。之后这些 hook 会自动注册到每个 spout 和 bolt 中,这样就可以很方便地处理例如集成自定义的系统监控代码之类的事情了。 转载自并发编程网 - ifeve.com
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果