www808888webcom基金的一个开源项目19908836661也是apache基金的一个开源

Flume也是apache基金的一个开源项目,由cloudera公司开发的一款分布式、高可靠、高可用的日志传输工具。其以agent为一个单位,agent由source、channel和sink构成。一个agent最少由一个source、channel和sink构成,数量可以自由组合

Source主要用来收集源数据,并对源数据进行反序列化。Source在读取数据文件时,会遍历日志文件中的每一行,并把这一行封装在一个event当中,一个event包含一个header和一个body,header是一个头文件,存放着这个event的一些信息数据,body存放的是我们实际要传输的数据。

Channel是一个数据的聚合和暂时存放的地方,数据在channel中存放的时间不会很长,可以根据配置被sink取走。其类型可以为内存、jdbc和file等

Sink负责将channel的数据传输到目的端,并且可以在传输过程中指定数据落地的方式的顺序。类型可以由hdfs、kafka、hbase等。

Flume的高可用和高可靠性体现在1.在source和channel之间数据传输和channel和sink之间用事务的方式来保证数据传输的可靠性,当有一个环节数据传输失败时,事务会进行回滚,并进行重新传输。2。Flume可以通过在日志服务器部署多套来防止单点故障的问题,当一个flume节点出现故障时,可以自动进行故障转移。

第二部分 flume的几种常见架构的应用

一、链式结构

Hadoop学习笔记系列四:hadoop项目流程-传输工具flume(一)

此种结构适合数据需要处理的情况,每一个agent环境进行一次数据处理,这种链式结构可以进行多次数据处理,并且使数据处理更加灵活。

二、分布式架构

Hadoop学习笔记系列四:hadoop项目流程-传输工具flume(一)

此种架构适合于避免单点故障的高可用场景和多个源数据存放的场景,通过在一台机器上部署多个agent达到高可用,可以在多个数据源的服务器上同时进行数据源的收集。当然此种场景也可以倒过来使用,通过一个agent收集单一数据源可以分别往不用的目的端进行分发

三、网状结构

Hadoop学习笔记系列四:hadoop项目流程-传输工具flume(一)

此种架构基于flume的agent的三个组件数量的灵活性,可以自由组合,满足更复杂的业务场景。

第三部分 flume详情和配置


一.Source

Source主要用来获取源数据并推送给channel,source支持的类型主要有

(1) Avro source

监听Avro端口,从Avro client streams接收events。

(2) Thrift source

监听Thrift端口和从外部Thrift client streams接收events

(3) exec source

Exec Source在启动时运行一个Unix命令行,并期望这过程在标准输出上连续生产数据,经常结合linux命令的tail -f xxx.log命令来不断获取最新日志

(4) JMS source

从jms目标(如队列或者主题)读取消息。JMS应用程序应该可以与任何JMS提供程序一起工作,但是只能使用ActiveMQ进行测试

(5) Spooling Directory source

source让你通过放置被提取文件在磁盘”spooling“目录下这一方式,提取数据。该source将会监控指定目录的新增文件,当新文件出现时解析event。event解析逻辑是可插入的。当一个给定文件被全部读取进channel之后,它被重命名,以标识为已完成(或者可选择deleted)

(6) kaska source

Kafka Source是Apache Kafka消费者,从Kfaka topics读取消息。如果你有多个Kafka source在跑,你可以配置它们在相同的Consumer Group,以使它们每个读取topics独特的分区。

(7) netcat tcp source

netcat source监听一个给定的端口,然后把text文件的每一行转换成一个event。

Flume source支持的类型还有很多,这里只列举常见的几种,在flume的官方网站上有详细的类型解释和配置要求。

  1. Flume source拦截器

拦截器(interceptor)在配置在source和channel之间的,用来做数据的拦截,一般有:

(1)timestamp interceptor ,在event的header中添加一个key为timestamp,value为当前的时间戳,可以通过配置,让source按照配置的时间范围来给channel推送数据

(2)Host interceptor 在event的header中添加一个key为host,value为当前的机器的hostname或者ip,可以通过hostname或者ip来筛选数据

(3)Static interceptor 在event的header中自定义添加一个key value的值,按照关键字来筛选源数据

(4)Regex filtering interceptor 通过正则表达式来筛选包含匹配值的events

(5)Regex Extractor Interceptor 在header中添加key value值通过正则表达式来筛选合适的数据

今天先到这里,还有几个问题,header和event的详情,以及详细的安装配置和运行,还有channel和sink留给明天吧!

原文地址:http://blog.51cto.com/14069088/2315538

时间: 2024-10-04 04:18:25

www808888webcom基金的一个开源项目19908836661也是apache基金的一个开源的相关文章

发布一个开源项目,基于thinkphp框架搭建的一个简单框架

采用Thinkphp框架,实现项目基础平台,实现数据库搭建维护,自动实现数据列表.数据管理(新增.修改.删除)等功能.

如何参与一个GitHub开源项目?

如何参与一个GitHub开源项目? 摘要:本文是Github官如何参与一个GitHub开源项目方给出的参与Github上开源项目的一些指导,对希望加入开源社区的开发者是一个不错的参考. 最近一年开源项目特别的热,很多技术大会或论坛都以开源项目作为主题进行探讨,可见这是一种趋势.而Github作为开源项目的著名托管地,可谓无人不知,越来越多的个人和公司纷纷加入到Github的大家族里来,为开源尽一份绵薄之力.对于个人来讲,你把自己的项目托管到Github上并不表示你参与了Github开源项目,只能

开源项目使用经验原则

软件开发领域有一个流行的原则:DRY,Don't repeat yourself,我们翻译过来更形象通俗:不要重复造轮子.开源项目主要目的是共享,其实就是为了让大家不要重复造轮子,尤其是在互联网这样一个快速发展的领域,速度就是生命,引入开源项目,可以节省大量的人力和时间,大大加快业务的发展速度,何乐而不为呢? 然而现实往往没有那么美好,开源项目虽然节省了大量的人力和时间,但带来的问题也不少,相信绝大部分同学都踩过开源软件的坑,小的影响可能是宕机半小时,大的问题可能是丢失几十万数据,甚至灾难性的事

优秀的 Android 开源项目

摘要  转载http://www.trinea.cn/android/android-open-source-projects-view/,方便大家找到自己合适的资料 目录[-] 一.ListView 二.ActionBar 三.Menu 四.ViewPager .Gallery 五.GridView 六.ImageView 七.ProgressBar 八.其他 GitHub上优秀Android开源项目 3. Android开发神器 1.Xabber客户端 2.oschina客户端 3.手机安全

facebook开源项目集合

Facebook的开源大手笔 1. 开源Facebook平台代码 Facebook在2008年选择将该平台上的重要部分的代码和应用工具开源.Facebook称,平台已经基本发展成熟,此举可以让开发者更全面地理解整个Facebook平台,更容易地为Facebook开发应用软件,并可以回报社区. 该项目代号为“FBOpen”,其中包含了实现Facebook平台的一些基础设施.功能等,如API架构.FQL分析器.FBML分析器.FBJS,以及许多常用方法和标签的实现,代码基于PHP.这意味着其他开发者

GitHub 优秀的 Android 开源项目

转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包含ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar及其它如Dialog.Toast.EditText.TableView.Activity Animation等等. 一.ListView android-pulltorefresh 一个强大的拉动

GitHub上史上最全的Android开源项目分类汇总

今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫的界面特效设计.个性化控件.工具库.优秀的Android开源项目.开发测试工具.优秀个人和团体等.可以这样说,每一位Andorid开发人员都能从中找到一个或多个适用自己项目的解决方案,消化吸收并加以利用,可以为自己的APP增色不少.文章最后还列出了部分国外著名Android开发者的信息,包括GitHub地址

机器学习的11个开源项目

转自InfoQ,作者张天雷 机器学习是目前数据分析领域的一个热点内容,在平时的学习和生活中经常会用到各种各样的机器学习算法.实际上,基于Python.Java等的很多机器学习算法基本都被前人实现过很多次了.这些算法在网上可以找到很多,然而往往存在很多“脏”或者“乱”的开源代码. 在这样的背景下, InfoWorld近日公布了机器学习领域11个最受欢迎的开源项目,这11个开源项目大多与垃圾邮件过滤.人脸识别.推荐引擎相关.它们大多数基于现今最流行的语言以及平台,推广以及扩展了机器学习领域的很多重要

视频会议及流媒体十大开源项目

在视频会议领域,有许多可以值得参考的开源项目,这些开源项目有的是协议栈.有的是编码器或者是传输协议,由于视频会议系统是一个综合性的应用系统,里面包含功能较多,如能把这些开源项目选择性的加入我们的视频会议开发当中,我们的开发效率肯定会事半功倍,下面我们列举一下视频会议相关的十大开源项目,并对其重要性及优缺点做一个全面的评价与排名. 1. OpenH323项目        (★★★★★) 上榜理由:最著名的H.323开源协议栈,视频会议开发必备协议栈,强烈推荐 最著名的H.323开源协议栈,包含了