大数据技术之Flume研究摘要(一)

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

Flume有两个版本,Flume 0.9X或CDH3及更早版本的统称Flume-og,Flume-og由agent、collection、master等组件组成;Flume1.X或CDH4及以后的版本统称Flume-ng,Flume-ng由agent、client等组件组成,截止到目前为止,Flume最新版本为1.6.0版本,Flume1.6.0有几个新特性:

  • Flume Sink and Source for Apache Kafka(source、sink新增对Kafka的支持)
  • A new channel that uses Kafka(channel使用Kafka的消息通道)
  • Hive Sink based on the new Hive Streamingsupport
  • End to End authentication in Flume
  • Simple regex search-and-replace interceptor(拦截器支持简单的正则表达式)

Agent

Flume运行的核心是agent,agent用于采集数据,将数据源的数据发送给collector。它是一个完整的数据收集工具,含有三个核心组件,分别是source、channel、sink。Event从Source,流向Channel,再到Sink。Event代表着一个数据流的最小完整单元,从外部数据源来,向外部的目的地去。Source:完成对日志数据的收集,分成transtion和
event 打入到channel之中。Channel:主要提供一个队列的功能,对source提供中的数据进行简单的缓存。Sink:取出Channel中的数据,进行相应的存储文件系统,数据库,或者提交到远程服务器。通过这些组件,event可以从一个地方流向另一个地方,如下图所示。

Source消费从外部流进的Events,如AvroSource接收外部客户端传来的或是从别的agent流出来的Avro
Event。Source可以把event送往一个或多个channel。channel是一个队列,持有event等待sink来消费,一种Channel的实现:FileChannel使用本地文件系统来作为它的存储。Sink的作用是把Event从channel里移除,送往外部数据仓库或给下一站agent的Source,如HDFSEventSink送往HDFS。同个agent下的source和sink是异步的。

flume-ng是由一个个agent组成的。一个agent就像一个细胞一样。当然可以自由组合,如下图:

下图为多对一Collection场景:

Source

完成对日志数据的收集,分成transtion和 event打入到channel之中

  • Source用于获取数据,可从文本文件,syslog,HTTP等获取数据
  • Sink将Source获得的数据进一步传输给后面的Collector。
  • syslogTcp(5140) |agentSink("localhost",12345)
  • tail("/etc/services") |agentSink("localhost",12345)

可以让应用程序同已有的Source直接打交道,如AvroSource,SyslogTcpSource。也可以写一个Source,以IPC或RPC的方式接入自己的应用。

Flume自带了直接可用的数据源(source),如:

ltext("filename")

ltail("filename")

lfsyslogTcp(5140)

lconsole("format")

lexec

lexecPeriodic

lexecStream

lirc

llog4jfile

lmultitail

lnonlsynth

lnull

lreport

lrpcSource

lscribe

lseqfile

lsyslogTcp

lsyslogTcp1

lsyslogUdp

l……

对于直接读取文件Source,有两种方式:

lExecSource:以运行Linux命令的方式,持续的输出最新的数据,如tail
-F
文件名指令,在这种方式下,取的文件名必须是指定的。 ExecSource可以实现对日志的实时收集,但是存在Flume不运行或者指令执行出错时,将无法收集到日志数据,无法保证日志数据的完整性。

lSpoolSource:监测配置的目录下新增的文件,并将文件中的数据读取出来。

需要注意:拷贝到spool目录下的文件不可以再打开编辑;spool目录下不可包含相应的子目录。SpoolSource虽然无法实现实时的收集数据,但是可以使用以分钟的方式分割文件,趋近于实时。如果应用无法实现以分钟切割日志文件的话,可以两种收集方式结合使用。在实际使用的过程中,可以结合log4j使用,使用log4j的时候,将log4j的文件分割机制设为1分钟一次,将文件拷贝到spool的监控目录。log4j有一个TimeRolling的插件,可以把log4j分割的文件到spool目录。基本实现了实时的监控。Flume在传完文件之后,将会修改文件的后缀,变为.COMPLETED(后缀也可以在配置文件中灵活指定)

Channel

Channel有多种方式:

有MemoryChannel,JDBCChannel,MemoryRecoverChannel,FileChannel。

MemoryChannel可以实现高速的吞吐,但是无法保证数据的完整性。

MemoryRecoverChannel在官方文档的建议上已经建义使用FileChannel来替换。

FileChannel保证数据的完整性与一致性。在具体配置不限的FileChannel时,建议FileChannel设置的目录和程序日志文件保存的目录设成不同的磁盘,以便提高效率。

Sink

Sink在设置存储数据时,可以向文件系统、数据库、hadoop存数据,在日志数据较少时,可以将数据存储在文件系中,并且设定一定的时间间隔保存数据。在日志数据较多时,可以将相应的日志数据存储到Hadoop中,便于日后进行相应的数据分析。

Flume提供了很多Sink,如:

lconsole[("format")]

ltext(“txtfile”)

ldfs(“dfsfile”)

lsyslogTcp(“host”,port)

lagentSink[("machine"[,port])]

lagentDFOSink[("machine"[,port])]

lagentBESink[("machine"[,port])]

lattr2hbase

lavroSink

lcollectorSink

lcounter

lformatDfs

lhbase

lirc

llogicalSink

lmultigrep

lregexhisto

lregexhistospec

lrpcSink

lseqfile

lthriftSink

l……

扫描下面的二维码可以关注作者的微信公众号。

时间: 2024-10-11 00:31:31

大数据技术之Flume研究摘要(一)的相关文章

大数据技术:让看病更加靠谱!

在早期,大部分医疗相关数据以纸质形式存在,而非电子数据存储,如正式医疗记录.费用记录.护士和医生书写的病例记录.处方药记录.X光记录.磁共振成像(MRI)记录.CT图像记录等.随着强大的数据存储.计算平台和移动互联网的发展,医疗数据的爆炸式增长和快速的电子数字化成为趋势.上述医疗数据在不同程度上转化为数字.移动互联网.大数据.云计算等领域的技术与医疗领域的跨境整合.新兴的技术和新的服务模式迅速到医疗的各个方面,使人们的医疗方式发生了重大变化.为我国医疗事业带来了新的发展机遇. 大医疗数据应用 大

基于大数据技术的手机用户画像与征信研究

内容提要:手机用户画像是电信运营商实现“数据驱动业务与运营”的重要举措.首先,介绍了手机用户画像过程中对个人隐私保护的方法,然后分析手机用户画像的数据来源与大数据实现技术,最后,通过数据样本实例分析手机用户画像在个人征信中的应用. 引言 随着计算机网络技术的不断发展,“数据即资源”的大数据时代已经来临.用户画像是电信运营商为了避免管道化风险,实现“数据驱动业务与运营”的重要举措.用户画像与应用大数据技术对客户分类密切相关,是单个客户的众多属性标签的累积:另一方面,在运营商涉足的消费金融领域,对手

下载基于大数据技术推荐系统实战教程(Spark ML Spark Streaming Kafka Hadoop Mahout Flume Sqoop Redis)

地址:http://pan.baidu.com/s/1c2tOtwc  密码:yn2r 82课高清完整版,转一播放码. 互联网行业是大数据应用最前沿的阵地,目前主流的大数据技术,包括 hadoop,spark等,全部来自于一线互联网公司.从应用角度讲,大数据在互联网领域主要有三类应用:搜索引擎(比如百度,谷歌等),广告系统(比如百度凤巢,阿里妈妈等)和推荐系统(比如阿里巴巴天猫推荐,优酷视频推荐等). 本次培训以商业实战项目作为驱动来学习大数据技术在推荐系统项目中的应用.使得学员能够亲身体会大数

中小企业的大数据技术路线选择(二)-Cassandra+Presto方案

中小企业的大数据技术路线选择(二)-Cassandra+Presto方案 我前面曾经写过:中小企业的大数据技术路线选择 和 低调.奢华.有内涵的敏捷式大数据方案:Flume+Cassandra+Presto+SpagoBI . 最近用了两个月的时间终于把Cassandra+Presto+SpagoBI方案验证通过了.验证了Presto的JDBC Driver .Prestogres网关.SHIB三种方式. 一.Presto JDBC驱动方案 Presto JDBC驱动方案,Java动用客户端,如

大数据技术#1 大数据技术生态体系

什么是大数据 ? 关于大数据麦肯锡全球研究所给出的定义是:一种规模大到在获取.存储.管理.分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模.快速的数据流转.多样的数据类型和价值密度低四大特征. ? 所谓的大数据生态系统简单可以理解成集成了大数据的存储和计算以及分析等常见技能于一身的技术框架,可以简单理解为:存储+计算+任务调度.比如目前主流的 Hadoop 生态系统和 Spark 生态系统.Hadoop 自身提供了 HDFS 用来数据存储,提供了 MapReduce 用

从大数据技术变迁猜一猜AI人工智能的发展

目前大数据已经成为了各家互联网公司的核心资产和竞争力了,其实不仅是互联网公司,包括传统企业也拥有大量的数据,也想把这些数据发挥出作用.在这种环境下,大数据技术的重要性和火爆程度相信没有人去怀疑. 而AI人工智能又是基于大数据技术基础上发展起来的,大数据技术已经很清晰了,但是AI目前还未成熟啊,所以本文就天马行空一下,从大数据的技术变迁历史中来找出一些端倪,猜一猜AI人工智能未来的发展. 最近断断续续的在看<极客时间>中「 从0开始学大数据 」专栏的文章,受益匪浅,学到了很多.尤其是非常喜欢作者

大数据技术之Hadoop入门

? 第1章 大数据概论 1.1 大数据概念 大数据概念如图2-1 所示. 图2-1 大数据概念 1.2 大数据特点(4V) 大数据特点如图2-2,2-3,2-4,2-5所示 图2-2 大数据特点之大量 图2-3 大数据特点之高速 图2-4 大数据特点之多样 图2-5 大数据特点之低价值密度 1.3 大数据应用场景 大数据应用场景如图2-6,2-7,2-8,2-9,2-10,2-11所示 图2-6 大数据应用场景之物流仓储 图2-7 大数据应用场景之零售 图2-8 大数据应用场景之旅游 图2-9

大数据技术之数据采集篇

[导读]数据采集是进行大数据分析的前提也是必要条件,在整个流程中占据重要地位.本文将介绍大数据三种采集形式:系统日志采集法.网络数据采集法以及其他数据采集法. (一)系统日志采集法 系统日志是记录系统中硬件.软件和系统问题的信息,同时还可以监视系统中发生的事件.用户可以通过它来检查错误发生的原因,或者寻找受到***时***者留下的痕迹.系统日志包括系统日志.应用程序日志和安全日志.(百度百科)大数据平台或者说类似于开源Hadoop平台会产生大量高价值系统日志信息,如何采集成为研究者研究热点.目前

除Hadoop大数据技术外,还需了解的九大技术

除Hadoop外的9个大数据技术: 1.Apache Flink 2.Apache Samza 3.Google Cloud Data Flow 4.StreamSets 5.Tensor Flow 6.Apache NiFi 7.Druid 8.LinkedIn WhereHows 9.Microsoft Cognitive Services Hadoop是大数据领域最流行的技术,但并非唯一.还有很多其他技术可用于解决大数据问题.除了Apache Hadoop外,另外9个大数据技术也是必须要了