自动化部署Flume+Kafka+Storm

由于业务需求特殊,一般只固定在一周的某几天晚上会有大量数据需要进行实时计算,而且只需要使用4到5个小时。平时只需要小规模的集群进行开发、测试和线上使用。 针对这种情况,为了减少服务器的费用,决定利用阿里云的 API 和 ECS 服务器,自动独立部署一套 Flume+Kafka+Storm 实时计算集群服务,以便灵活应对各种压力下的计算需求。 场景分析 根据业务分析,整理出三种使用场景: 1、平时或用户数据量较小时,直接用固定的小型集群。不需要做任何改变。 2、用户量一般,压力…

Storm Trident学习总结

1、Trident Trident 可以理解为 Storm 批处理的高级抽象,提供了分组、分区、聚合、函数等操作。 这里涉及到几个概念,做一下说明: batch: 出于效率原因,对tuple进行批量操作。若干的tuple组合就是batch,Trident的操作就是对batch的操作 partition: 将一个batch的数据分区,分成多个partition,或者可以理解为多个子batch,然后多个partition可以并发处理。 所以,分区后要…

Storm自动监控报警

 虽然Storm自身提供的有UI,可以查看监控状态。但总不能让人实时的盯着吧。为了满足自己的监控需求,查看了官网,发现有Storm UI REST API,提供了丰富的接口,Storm UI就是基于这个API实现的。有了这些API,我们就可以实现自身的一些监控了。 需求 由于我们没有统一的监控报警平台,需要我们自己根据服务情况来做监控。监控要求很简单: 1、指定的Topology服务出现异常要能及时报警 2、Topology中的bolt…

Storm消费Kafka监控

 Flume+Kafka+Storm是目前比较常用的一种实时处理组合。组合的框架越多,可能出问题的地方就越多,相对应的问题排查也就越麻烦。这时,监控就显得尤为重要,有效的监控,可以帮助我们快速定位问题的环节,减少排查的时间。 Storm服务自带UI,可以查看服务状态,也可以直接调用其提供的rest api,实现监控报警。 Kafka自带的有消费命令脚本,可以查看各topic和partition对应的offset信息。但是由于版本和消费方的使用规则不同,无法做到统一,…