一、概述
官网
http://flume.apache.org/FlumeUserGuide.html#hdfs-sink
Cloudera 公司开发的实时的日志采集-> 捐献给了apache
适用于实时的数据分析 (spark)
同样也可以用于离线的分析 (hive)
Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. It uses a simple extensible data model that allows for online analytic application.
Flume 是一个分布式的,高可用的 是一个 收集 聚集 移动(流式处理) 日志收集系统
Flume 仅仅运行在unix环境下(linux)
Flume 只有一个角色 Agent 该角色下存在:
- Source 用于采集数据的组件,在source里产生数据流,同时会把数据流传输给Channel
- Channel 主要是连接source 和sink的组件有点类似于队列
- Sink 从channel收集数据,将数据写到目标源 可以将目标源设置为HDFS 目录
在flume中传输的最小单元为event, source将数据封装到evnet里 sink拿到event
Event组件
本身就是一个字节数组
Header 头信息 key value
Body 主体: 字节数组 存储数据的详细内容
一个行文本的内容就会被序列化为一个event
Event 的最大字节为2048
超过了大小,会进行切割 存放到下个event
Event的默认编码为UTF-8