《Hadoop技术原理》课件——11.Flume.pptx
Hadoop技术原理
Flume
Flume简介
01Flume简介
·对于海量实时产生的日志,我们看出它需要经过一个“桥梁”或中介,这就是这章要学的Flume(Flume翻译成中文是水槽)。
·Flume把采集后的实时日志保存到HDFS或HBase中,可以进行离线计算。比如,要统计出最近一周的用户异常的数据,按地区划分,展示到一张地图上。
·另一种方式,则是Flume可以把采集到的实时日志,发送给消息中间件,比如Kafka,然后送到实时计算引擎进行计算,实时分析出当前存在的异常情况
离线计算
HDFS/HBa
se
8kafka
Flume(水槽)
实时计算
CLOUDCOMPUTING
海量实时日志
Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的
系统
(Flume由Cloudera提供)
Flume支持在日志系统中定制各类数据发送方,用于收集数据。
Flume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力。
Flume简介
02
03Flume简介
·Flume在Hadoop生态圈中的地位
Ambari
(安装部署工具)
HivePigMahout
数据分析引擎机器学习算法库
MapReduce
(离线计算)
YARN
(资源调度框架)
HDFS
(分布式存储系统)
Hadoop生态圈
(数据库E几工具)(日志采集)
数据采医翠
(分布式协调服务)
(分布式数据库)
Zookeeper
doobs
HBase
Flume
04Flume架构
·生活中的Flume(水槽)
源传输的介质目的地
Flume架构
·Flume的核心(Agent)
数据目的地有多种
HDFS
Hive
Kafka
数据源有多种
SpoolingDirectory
NetCatTCP
AvroSource
Kafka
Source
组件
采集数据
Channel组件
Logger
缓存数据
(常用MemoryChannel)
05
Sink
组件
保存日志
Agent
06Flume架构
·Flume的核心(Agent)
Source组件:从数据源接收数据(即采集数据);Channel组件:连接Source和Sink的管道,缓存数据。Sink组件:传递数据给目的地(即保存数据);
SourceSink
ServerChannel
Agent
HDFS
07Flume架构
·Flume传递的数据:Event(事件)
Event:Flume将数据表示为Event。
Event是Flume的处理数据元,它可能是一条日志、一个Avro对象等,通常约4KB大小
events
Sink
events
Channel
Agent
HDFS
events
Source
Web
Server
02
Flume安装与应用
01Flume安装
·Flume安装步骤
下载安装包apache-flume-1.8.0-bin.tar.gz
解压到指定目录下
tar-zxvfapache-flume-1.8.0-bin.tar.gz-C/usr/local/src/修改环境变量,在~/.bashrc文件增加
exportFLUME_HOME=/usr/local/src/flume
exportPATH=$FLUME_HOME/bin:$PATH
执行source~/.bashrc,使配置生效。
描述
Event数据存储在内存中
Event数据存储在持久化存储中
Event数据存储在磁盘文件中
Event数据存储在内存中和磁盘上,当内存队列已满,将持久化到磁盘文件(不建议生产环境使用)
测试用途
Event存储在Kafka
自定义
Channel类型
MemoryChannel
JDBCChannel
FileChannel
SpillableMemoryChannel
PseudoTransactionChannel
KafkaChannel
CustomChannel
02Flume应用
·Flume组件类型Channel类型
·更多属性请参考官方文档
描述
支持Av