flume的概念和基本使用
来源:互联网 发布:淘宝哪些站外网站 编辑:程序博客网 时间:2024/05/17 06:30
一、flume概述
flume是一个分布式的、可靠的、可用的以及高效的对大量数据日志进行收集、聚集、移动信息的服务。flume是一个可容错的、健壮的并且非常简单的流式数据框架,他只需要简单配置source、channel以及sink后,编写一条命令就可实时采集数据。 agent的三个组成部分为:source、channel和sink。 source:用于采集数据,source是产生数据流的地方,同时,source会将产生的数据传输到channel上。 channel:连接source和sink,类似队列 sink:从channel收集数据,将数据写到目标源,可以是下一个flume的source,或者是hdfs或者hbase等。
二、flume使用版本
笔者使用的hadoop版本是cdh-5.3.6,所以选择的flume对应版本是flume-ng-1.5.0-cdh.5.3.6,这里简单介绍下,flume大的版本可以分为flume-og和flume-ng,其中og中的o笔者以前以为是old的意思,但是看了官方介绍是orginal的意思,ng的n也不是new 的意思,而是next(下一代)的意思,两个版本的差别还是比较大的。其中0.9x版本以前是flume-og,1.x以后的版本是flume-ng。
三、flume-nge的使用
基本使用:
基本使用就是简单的从source读消息到sinkflume基本使用的简单架构如下:
场景1:从本地文件到本地文件
source:hive.log (某个日志文件) channel:mem(内存通道) sink:log(另一个日志文件) 配置文件:
运行后:
场景2:从本地文件到本地文件,使用file channel
source:hive.log (某个日志文件)channel:filechannelsink:log(另一个日志文件)配置文件:
运行:
场景3:从本地文件到hdfs
source:hive.log (某个日志文件)channel:mem(内存通道)sink:hdfs同时,需要把hadoop下面的commons-configuration-1.6.jar、hadoop-auth-2.5.0-cdh5.3.6.jar、hadoop-common-2.5.0-cdh5.3.6.jar和hadoop-hdfs-2.5.0-cdh5.3.6.jar拷贝到flume_home\lib下面配置文件:
运行结果不再赘述。
四、flume在企业中使用的一些问题和思考
1.flume向hdfs传输数据时,有可能产生很多小的文件,这在企业中肯定是不行的,hdfs要求存储文件越大越好,至少是128M,如何设置flume中hdfs的sink?2.使用flume把数据导入hive表中,如果hive使用的是分区表,比如按照年、月、日分区,那么如何把每天的数据导入到对应的日期目录下,此时如何配置flume中的hdfs的sink?3.如何在指定的文件夹过滤掉一些不需要的文件,例如以xxx开头或者.xxx结尾的文件?解决上述几个问题就需要了解sink的一些其他配置,1) 在sink中,通过sourceName.sinks.sinkName.hdfs.rollSize可以设定输出文件的最大大小,例如我们可以设置10k,那么配置就是:sourceName.sinks.sinkName.hdfs.rollSize=1024002)在sink中,可以通过系统时间来进行动态文件夹的生成,例如我们期望按照每小时来分区,那么分区目录是:2014-10-12/01 /02 ... /24该需求可以通过sourceName.sinks.sinkName.path参数来配置,那么上面需求的配置就是:sourceName.sinks.sinkName.path=/flume/events/%y-%m-%d/%H
(注意:,其中1和2会有冲突,例如我们设置文件大小为128M,但是我们分区时按照分钟来分区,那么有可能1分钟的数据没有128M,那么文件大小肯定不会是128M)
3)如果期望过滤掉指定文件名的文件,那需要通过配置source中的sourceName.sinks.sinkName.ignorePattern来设置,如果期望过滤掉.tmp结尾的文件,那么配置如下:sourceName.sinks.sinkName.ignorePattern=([^]*\.tmp)那么最终的flume的配置文件如下:
flume的基本使用就介绍到这里。
0 0
- flume的概念和基本使用
- Flume的基本使用
- Flume的基本使用介绍
- 基本控件的概念和使用
- flume的原理和使用
- flume的原理和使用
- flume的原理和使用
- flume的安装和使用
- Flume基本使用
- 【Flume】flume中transactionCapacity和batchSize概念的具体分析和解惑
- Objective-C--block的概念和基本使用
- Flume-ng的原理和使用
- Flume-ng的原理和使用
- Flume-ng的原理和使用
- Flume-ng的原理和使用
- Flume-NG 的原理和使用
- Flume-ng的原理和使用
- Flume-ng的原理和使用
- [POJ 2368 A Simple Problem with Integers] 树状数组区间修改、区间查询
- 怎么得到时间,并且存入到String变量中
- 图片浏览,内从不足的问题!急!
- Nginx 服务器隐藏 index.php 配置
- j2me入门问题,关于HelloMIDlet问题
- flume的概念和基本使用
- 手机上运行酷欧天气,显示加载失败?
- 懒虫小鑫
- python win系统下 打开TXT文件
- php连接mysql数据库实例
- springMVC+activemq整合注解方式
- 如何让google静态地图为jpg格式?
- Opencv之HOG特征与SVM相结合的人体检测(增加自举法)
- 文本转换工具