Flume应用开发
要求:
- 了解Flume应用开发适用场景
- 掌握Flume应用开发
Flume应用场景
Flume的核心是把数据从数据源收集过来,在送到目的地。为了保证输送一定成功,发送到目的地之前,会先缓存数据,待数据真正的到达目的地后,删除自己缓存的数据。
Flume采用流式方法采集和传输数据,程序配置好后,不需要外部条件触发下,一直监控数据源,源源不断地采集、传送数据到目的地。
主要应用于一下几种场景:
- 将分布式节点上大量数据实时采集、汇总和转移
- 将集群内、外地本地文件、实时数据流采集到FusionInsight集群内的HDFS、HBase,Kafka,Solr中。
- 将Avro、System,http,Thrift,JMS、Log4j协议发送过来地数据采集到FusionInsight集群内
Flume基本概念
- Source:数据源,即是产生日志信息地源头,Flume会将原始数据建模抽象成自己处理地数据对象:event
- Channel:通道,主要作用是临时缓存Source发过来地数据
- Sink:主要是从channel中取出数据并将数据放到不同地目的地
- event:一个数据单元,带有一个可选地消息头,Flume传输地数据地基本单位是event,如果是文本文件,通常是一行记录。event从Source,流向Channel,再到Sink,Sink将数据写入目的地
方案设计:
1)首先确定数据源:集群外
2)数据最终流向:KafKa(集群内)