Storm的Window机制

Storm 在1.0版本引入了 windowing 机制,使得开发者可以很方便的做一些统计计算。

阅读更多
Storm高级接口Trident

Trident 可以理解为 Storm 批处理的高级抽象,提供了分组、分区、聚合、函数等操作。

阅读更多
Storm + Kafka + Flume脚本化安装部署

由于业务需求特殊,一般只固定在一周的某几天晚上会有大量数据需要进行实时计算,而且只需要使用4到5个小时。平时只需要小规模的集群进行开发、测试和线上使用。 针对这种情况,为了减少服务器的费用,决定利用阿里云的 API 和 ECS 服务器,自动独立部署一套 Flume+Kafka+Storm 实时计算集群服务,以便灵活应对各种压力下的计算需求。

阅读更多
Storm监控

虽然Storm自身提供的有UI,可以查看监控状态。但总不能让人实时的盯着吧。为了满足自己的监控需求,查看了官网,发现有Storm UI REST API,提供了丰富的接口,Storm UI就是基于这个API实现的。有了这些API,我们就可以实现自身的一些监控了。

阅读更多
Storm消费Kafka监控

Flume+Kafka+Storm是目前比较常用的一种实时处理组合。组合的框架越多,可能出问题的地方就越多,相对应的问题排查也就越麻烦。这时,监控就显得尤为重要,有效的监控,可以帮助我们快速定位问题的环节,减少排查的时间。

Storm服务自带UI,可以查看服务状态,也可以直接调用其提供的rest api,实现监控报警。

Kafka自带的有消费命令脚本,可以查看各topic和partition对应的offset信息。但是由于版本和消费方的使用规则不同,无法做到统一,不一定好用。

阅读更多
Kafka集群安装

Kafka是一个分布式的、可分区的、基于备份的、基于commit-log存储的服务。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。

Kafka消息是根据Topic进行归类,发送消息者成为Producer,消息接收者成为Consumer;此外Kafka集群有多个kafka实例组成,每个实例(server)称为broker。

无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性以及保存一些meta信息。

阅读更多
Grafana使用

Grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现。有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus 和 OpenTSDB 作为数据源,最新版本4.3.1已经支持 MySQL 数据源。

Grafana 主要特性:灵活丰富的图形化选项;可以混合多种风格;支持多个数据源;拥有丰富的插件扩展;支持用户权限管理。

阅读更多
Telegraf使用

Telegraf 是 InfluxData 下的子项目,是由 Go 语言编写的 metrics 收集、处理、聚合的代理。其设计目标是较小的内存使用,通过插件来构建各种服务和第三方组件的 metrics 收集。Telegraf 具有插件或集成功能,可以直接从其运行的系统中获取各种指标,从第三方API中提取指标,甚至通过 statsd 和 Kafka 消费者服务监听指标。它还具有输出插件,可将指标发送到各种其他数据存储,服务,和消息队列,包括InfluxDB,Graphite,OpenTSDB,Datadog,Librato,Kafka,MQTT,NSQ等等。

阅读更多
Flume监控

最近在对服务做压力测试时,发现当 QPS 达到很高的一个值时,Flume 会出现报错。为了排查原因,一边结合 Telegraf 的数据收集,给 Flume 加上监控和报警;一边查看 Flume 代码。

阅读更多
Flume源码学习四

FlumeEvent 是各组件传输数据的载体。通过分析 Event 的数据流,可以更详细的分析 Flume 的各个组件。

阅读更多