官方示例: a1.channels = c1a1.channels.c1.type = jdbc 4、Kafka Ch
Flume高可用集群
工欲善其事,必先利其器。
感谢感动以下博主:
https://www.cnblogs.com/qingyunzong/p/8994494.html
https://blog.csdn.net/peng_0129/article/details/80793440
https://blog.csdn.net/suojie123/article/details/86577935
https://blog.csdn.net/kelong_xhu/article/details/42677045
https://blog.csdn.net/johnnychu/article/details/82780521
flume简介
官网:
打开官网【经翻译】
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作为cloudera开发的实时日志收集系统,收到业界的遍及承认和广泛应用。flume按新老来分可分为2个版本:Flume OG【0.94及之前】和Flume NG。 并且重构后的Flume NG纳入了apache旗下,更名为Apache Flume, 目前广泛使用的都是Flume NG即Apache Fluem。
而且目前flume只撑持Linux启动。
Flume特点:
flume是一个漫衍式、可靠、和高可用的海量日志收罗、聚合和传输的系统。撑持在日志系统中定制种种数据发送方,用于收集数据;同时,Flume供给对数据进行简单措置惩罚惩罚,并写到各类数据接受方(好比文本、HDFS、Hbase等)的能力 。
flume的数据流由事件(Event)贯穿始终。event是Flume的根基数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source生成,当Source捕获事件后会进行特定的格局化,然后Source会把事件推入(单个或多个)Channel中。你可以把Channel看作是一个缓冲区,它将生存事件直到Sink措置惩罚惩罚完该事件。Sink卖力长期化日志或者把事件推向另一个Source。
(1)flume的可靠性
当节点呈现故障时,日志能够被传送到其他节点上而不会丢掉。Flume供给了三种级另外可靠性保障,从强到弱依次分袂为:end-to-end(收到数据agent首先将event写到磁盘上,当数据传送告成后,再删除;如果数据发送掉败,可以从头发送。),Store on failure(这也是scribe给与的计谋,当数据接收方crash时,将数据写到本地,待恢复后,继续发送),Besteffort(数据发送到接收方后,不会进行确认)。
(2)flume的可恢复性
还是靠Channel。保举使用FileChannel,事件长期化在本地文件系统里(性能较差)。
核心观点:
Client:Client出产数据,运行在一个独立的线程。
Event: 一个数据单元,动静头和动静体构成。(Events可以是日志记录、 avro 东西等。)
Flow: Event从源点达到目的点的迁移的抽象。
Agent: 一个独立的Flume进程,包罗组件Source、 Channel、 Sink。(Agent使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包罗多个sources和sinks。)
Source: 数据收集组件。(source从Client收集数据,通报给Channel)
Channel: 中转Event的一个姑且存储,生存由Source组件通报过来的Event。(Channel连接 sources 和 sinks ,这个有点像一个行列队伍。)
Sink: 从Channel中读取并移除Event, 将Event通报到FlowPipeline中的下一个Agent(如果有的话)(Sink从Channel收集数据,运行在一个独立线程。)
体系布局:
Flume 运行的核心是 Agent。Flume以agent为最小的独立运行单位。一个agent就是一个JVM。它是一个完整的数据收集工具,含有三个核心组件,分袂是source、 channel、 sink。
Flume source:
1、Avro Source
监听Avro端口,从Avro client streams接收events。
属性
【必须设置】
channels:【不表】
type:组件类型名称,需要时avro
bind:监听的主机名或ip地点
port:绑定的端标语
【选填设置】
threads:生成的事情现成的最大数量
interceptors:空格分隔断绝分手的列表拦截器
a1.sources.s1.channels = c1 a1.sources.s1.type = avro a1.sources.s1.bind = 192.168.123.102 a1.sources.s1.port = 6666
2、Thrift Source:与Avro根基一致
a1.sources.s1.channels = c1 a1.sources.s1.type = thrift a1.sources.s1.bind = 192.168.123.102 a1.sources.s1.port = 6666
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31359.html