Flink1.4部署实践

Apache Flink 是一个开源的分布式流处理和批处理系统。Flink 的核心是在数据流上提供数据分发、通信、具备容错的分布式计算。同时,Flink 在流处理引擎上构建了批处理引擎,原生支持了迭代计算、内存管理和程序优化。 概念 关于Flink的详细说明,可以看 简单之美 的 Apache Flink:特性、概念、组件栈、架构及原理分析。 安装 这里分为 Standalone Cluster 和 JobManager High Availab…

自动化部署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可以并发处理。 所以,分区后要…

Flume监控

最近在对服务做压力测试时,发现当 QPS 达到很高的一个值时,Flume 会出现报错。为了排查原因,一边结合 Telegraf 的数据收集,给 Flume 加上监控和报警;一边查看 Flume 代码。 异常排查 当 QPS 压到3w时,Flume出现一下错误信息。 根据错误信息描述,是 source 接收端的容量达到上线,无法再接收数据,直接 kill 掉了 tail 命令。 在排查问题之前,先了解一下 f…

Telegraf使用

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

Storm自动监控报警

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

Flume源码分析(四)Event数据流程图

刚开始梳理这篇内容时,赶上比较忙的业务,一直就闲搁了,最近才有时间,既然花了时间,再放弃或遗忘,就浪费了。如是便重新整理,以便以后用到时可以快速回顾。 Flume 的 Event 是各组件传输数据的载体。通过分析 Event 的数据流,可以更详细的分析 Flume 的各个组件。 先看一下 Event 的大体的流程图。 大体流程说明: 启动 Flume Agent,加载配置,初始…

Flume源码分析(三)实例化组件对象

Flume源码分析学习系列三,实例化组件对象,并启动各组件服务。详细内容,请阅读全文。 在分析之前,先看一下三大组件的大体类图。 三大组件的实例化分别在loadSources、loadChannels、loadSinks方法中完成。 实例化Source组件 loadSources 从AgentConfiguration类中获取配置信息,通过DefaultSourceFactory来完成实例对象的创建。 根据配置文件中a1.sources.src-1.type的配置,匹配枚举类…

Flume源码分析(二)解析配置文件

Flume源码分析学习系列二,解析配置文件。详细内容,请阅读全文。 Flume的一个配置文件对应一个agentName。配置文件每行内容中,等号前的内容为key,等号后的内容value。 key的组成格式为以下两种: 1、agentName.组件类型。例如:a1.channels 2、agentName.组件类型.组件名称.属性。例如:a1.sources.src-1.type 假设我们用Flume监控本地一个目录,将新增的文件内容写入HDFS上,配置文件内容如下: 按照以上…

Flume源码分析(一)启动

Flume源码分析学习系列一,服务启动整体分析。详细内容,请阅读全文。 编译 先从Github上下载源码到本地,这里我用的1.8版本,源码地址为: 导入idea,通过maven进行编译。 分析 分析之前,先看一下各module的作用: module 说明 flume-ng-core 核心模块 flume-ng-sources source组件的实现 flume-ng-channels channel组件的实现 flume-ng-sinks sink组件的实现 flume-ng…