大家好,我是曜耀。
这几天曜耀开始复习一下自己的专业课,相信看过的都了解,就是当前热门的大数据技术与应用。我对于这门专业来说,一个特色就是都会,你说Linux我懂,你说java这是基操,python不好意思也会,前端?略懂略懂。hadoop?嗯?这是我们专业的特色不会没人知道吧。还有很多的只要你说的关于程序员的我们大数据专业都知道。如果你们听说过大数据技术与应用,这很正常,这一两年兴起的。
接下来就让我们复习一下Flume这个hadoop的核心之一。
Flume
是一个高可用,高可靠,分布式的海量日志采集、聚合和传输的系统,能够有效的收集、聚合、移
动大量的日志数据。
其实通俗一点来说就是
Flume
是一个很靠谱,很方便、很强的日志采集工具。
他是目前大数据领域数据采集最常用的一个框架。这就是我们大数据用来吃饭的饭碗。
特性
1.
它有一个简单、灵活的基于流的数据流结构,这个其实就是刚才说的
Agent
内部有三大组件,数据通
过这三大组件流动的
2.
具有负载均衡机制和故障转移机制,这个后面我们会详细分析
3.
一个简单可扩展的数据模型
(Source
、
Channel
、
Sink)
,这几个组件是可灵活组合的
Flume
的三大核心组件:
Source
:数据源
Channel
:临时存储数据的管道
Sink
:目的地
Source
Source
:数据源:通过
source
组件可以指定让
Flume
读取哪里的数据,然后将数据传递给后面的
channel
Flume
内置支持读取很多种数据源,基于文件、基于目录、基于
TCP\UDP
端口、基于
HTTP
、
Kafka
的
等等、当然了,如果这里面没有你喜欢的,他也是支持自定义的
在这我们挑几个常用的看一下:
Exec Source
:实现文件监控,可以实时监控文件中的新增内容,类似于
linux
中的
tail -f
效果。
在这需要注意
tail -F
和
tail -f
的区别
tail -F
等同于
–follow=name --retry
,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果
再次创建相同的文件名,会继续追踪
tail -f
等同于
–follow=descriptor
,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
在实际工作中我们的日志数据一般都会通过
log4j
记录,
log4j
产生的日志文件名称是固定的,每天定
时给文件重命名
假设默认
log4j
会向
access.log
文件中写日志,每当凌晨
0
点的时候,
log4j
都会对文件进行重命名,在
access
后面添加昨天的日期,然后再创建新的
access.log
记录当天的新增日志数据。
这个时候如果想要一直监控
access.log
文件中的新增日志数据的话,就需要使用
tail -F
NetCat TCP/UDP Source
: 采集指定端口
(tcp
、
udp)
的数据,可以读取流经端口的每一行数据
Spooling Directory Source
:采集文件夹里新增的文件
Kafka Source
:从
Kafka
消息队列中采集数据
以上就是Flume的知识点。
我是曜耀,下次见。