文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州
▲ 本章节目的
⚪ 了解Ganglia的概念;
⚪ 了解Ganglia的拓扑结构和执行流程;
⚪ 掌握Ganglia的安装操作;
一、简介
1. 概述
1. Flume原本是由Cloudera公司开发的后来贡献给了Apache的一套分布式的、可靠的、针对日志数据进行收集(collecting)、汇聚(aggregating)和传输(moving)的机制。
2. 在大数据中,实际开发中有超过70%的数据来源于日志 - 日志是大数据的基石。
3. Flume针对日志提供了非常简单且灵活的流式传输机制。
4. 版本:
a. Flume0.X:又称之为Flume-og。依赖于Zookeeper,结构配置相对复杂,现在市面上已经停用这个版本。
b. Flume1.X:又称之为Flume-ng。不依赖于Zookeeper,结构配置相对简单,是市面上常用的版本。
2. 基本概念
1. Event:
a. 在Flume中,会将收集到的每一条日志封装成一个Event对象 - 在Flume中,一个Event就对应了一条日志。
b. Event本质上是一个json串,固定的包含两部分:headers和body - Flume将收集到的日志封装成一个json,而这个json就是Event。Event的结构是{"headers":{},"body":""}。
2. Agent:是Flume流动模型的基本组成结构,固定的包含了三个部分:
a. Source:从数据源采集数据的 - collecting。
b. Channel:临时存储数据 - aggregating。
c. Sink:将数据写往目的地 - moving。
3. 流动模型/拓扑结构
1. 单级流动
2. 多级流动
3. 扇入流动
4. 扇出流动
5. 复杂流动:实际过程中,根据不同的需求来将上述的流动模型进行组合,就构成了复杂流动结构。
4. 执行流程
1. Source会先采集数据,然后将数据发送给ChannelProcessor进行处理。
2. ChannelProcessor处理之后,会将数据交给Interceptor来处理,注意,在Flume允许存在多个Interceptor来构成拦截器链。
3. Interceptor处理完成之后,会交给Selector处理,Selector存在两种模式:replicating和multiplexing。Selector收到数据之后会根据对应的模式将数据交给对应的Channel来处理。
4. Channel处理之后会交给SinkProcessor。SinkProcessor本质上是一个Sinkgroup,包含了三种方式:Default,Failover和Load Balance。SinkProcessor收到数据之后会根据对应的方式将数据交给Sink来处理。
5. Sink收到数据之后,会将数据写到指定的目的地。
二、安装
1. 安装步骤
2. 参数
参数 | 解释 |
-n,--name | 指定要运行的Agent的名字 |
-c,--conf | 指定Flume运行的原生配置 |
-f,--conf-file | 指定要运行的文件 |
-Dflume.root.logger | 指定Flume本身运行日志的打印级别及打印方式 |