1、flume是分布式的日志收集系统,把手机来的数据传送到目的地去
2、flume传输的数据的基本单位是 event,如果是文本文件,通常是一行记录。
      event代表着一个数据流的最小完整单元,由零个或多个header和正文组成,header类似于http头,包含时间的时间戳或者来源服务器主机名等。
3、flume里面有个核心概念,叫做agent,agent是一个java进程,运行在日志收集节点。
4、agent里面包含3个核心组件:source、channel、sink.

说明:
  •  source组件是专用于收集日志的,可以处理各种格式的日志数据 ,包括avro、thrift、exec、jms、spooling、directory、netcat、   sequence、 generator、syslog、http、legacy、自定义。source组件把数据收集来以后,临时存放在channel中。
  •  channel组件是在agent中专用于临时存储数据的,可以存放在memory、jdbc、file、自定义。channel中的数据只有在sink发送成功之后才会被删除。
  •         sink组件是用于把数据发送到目的地的组件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、solr、自定义
5、在整个数据传输过程中,流动的是event。事务保证是event级别。
6、flume可以支持多级flume的agent,支持扇入(fan-in)、扇出(fan-out)
     注意:
            1、一个source写event到一个或者多个channels中。
            2、一个channel是event从source传输到sink的等候区;
            3、一个sink只可以从一个channel中接收events;
            4、一个agent可以有多个source、channel和sink
7、组件类型说明
     source:
    
    
    channel:
    
    
     sink:
    
8、参数配置详解
    Server:
    (1) SpoolDirectoryTailFileSource:默认是按行读取,可以保证数据的完整性,即使flume重启或者被杀掉。
      (2) trackerDir:存储处理文件相关的元数据的目录,如果不是绝对路径,那么将是spoolDir的相对路径。  
      (3) consumeOrder:转换文件的顺序 oldest|youngest|random
      (4)batchSize:批量传输到Channel的粒度
      (5)inputCharset:反序列化实验的字符集
      (6) decodeErrorPolicy:如果解析失败的字符时应该如何处理,默认是FAIL,还可以选择IGNORE和REPLACE,FAIL时会抛出Exception,flume整个进程会阻塞在这,IGNORE会忽略此字符,REPLACE会用另一个字符替代。
      (7)deserializer:这种反序列化器会将输入的文件的每行生成一个event
      (8)deserializer.maxLineLength:默认是2048,大于这个字符数的行将被截断 
      (9)avro type:支持Avro协议(实际上是Avro RPC),内置支持
      (10)sinkgroups:通过sink组来选择当中优先级高的哪个作为被激活的sink.没有负载平衡处理,只是做到容灾。其中包括了两个sink,两个sink分别指向不同的flume-agent
      (11)memory channel:如果虚拟机或机器重新启动,任何缓冲区中的数据将丢失。
      (12)最好不要一个flume agent配置多个端口【影响性能】,配在一台机子上通过端口区分,一旦死机,全盘崩溃
      Client:
     (1)producer.max.request.size:每次producer请求的最大的字节数
     (2)useLocalTimeStamp:是否使用本地时间戳
     (3) rollInterval:多久生成一个新文件,若为0,则一直为一个文件。
     (4)rollSize:每个文件滚动大小
     (5)rollCount:若为0表示文件的滚动与event数量无关
     (6)idleTimeout:如果文件在hdfs.idleTimeout秒的时间里都是闲置的,没有任何数据写入,那么当前文件关闭,滚动到下一个文件
     (7)transactionCapacity:事务容量,Channel每次提交的Event数量
 
    Taildir与spooltailfiledirectory:taildir不能自动识别新文件;不支持文件名修改,容易重复上传;taildir不支持断点续传。
 
    Flume采集流程:
    往文件中写内容,触发flume agent server 的spoolTailFiledirectory,这样内容就会通过flume agent server到memory channel中,在
    通过failover机制选择优先级高的sink去输出,最终输出的地方,由最后一环的flume配置中sink.type决定,可以是kafka,hdfs等等。
 
 

flume基本概念及相关参数详解的更多相关文章

  1. MySQL复制相关参数详解

    MySQL复制相关参数详解 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.复制相关系统变量 1>.server_id 是必须设置在master和每个slave上的唯一标 ...

  2. 【DataGuard】部署Data Guard相关参数详解 (转载)

    原文地址:[DataGuard]部署Data Guard相关参数详解 作者:secooler    有关物理Data Guard部署参考<[DataGuard]同一台主机实现物理Data Gua ...

  3. gcc与g++区别以及相关参数详解

    ---恢复内容开始--- 原文链接:g++和gcc的区别 一 .二者区别 gcc和g++都是GNU(一个组织)的编译器. 1.对于.c后缀的文件,gcc把它当做是C程序:g++当做是C++程序: 2. ...

  4. Linux OOM killer 与相关参数详解

    一.前言 本文是描述Linux virtual memory运行参数的第二篇,主要是讲OOM相关的参数的.为了理解OOM参数,第二章简单的描述什么是OOM.如果这个名词对你毫无压力,你可以直接进入第三 ...

  5. mount挂载相关参数详解

    mount   [ -t 设备类型 ]    [ -o 扩展参数 ]   dev   dir   -t:指定mount挂载设备类型,常见的类型有nfs.ntfs.vfat.iso9660等: is09 ...

  6. mybatis学习记录三——SqlMapConfig.xml相关参数详解

      5       SqlMapConfig.xml mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) ty ...

  7. Hbase相关参数详解

    转载:http://www.cnblogs.com/nexiyi/p/hbase_config_94.html 版本:0.94-cdh4.2.1 hbase-site.xml配置 hbase.tmp. ...

  8. [置顶] MVC输出缓存(OutputCache参数详解)

    1.学习之前你应该知道这些 几乎每个项目都会用到缓存,这是必然的.以前在学校时做的网站基本上的一个标准就是1.搞定增删改查2.页面做的不要太差3.能运行(ps真的有这种情况,答辩验收的时候几个人在讲台 ...

  9. MVC输出缓存(OutputCache参数详解)

    版权声明:本文为博主原创文章,未经博主允许转载随意. https://blog.csdn.net/kebi007/article/details/59199115 1.学习之前你应该知道这些 几乎每个 ...

随机推荐

  1. SQL直接生成实体属性,简单粗暴型

    在java开发中,不可避免的要碰到根据表生成对应的实体,这个过程是比较机器且繁琐的,我也用过一些逆向工程的工具,比如IDEA自带的生成实体,还有网上开源的工具,用起来也是可以的. 我现在开发用的持久层 ...

  2. 百度前端技术学院-基础-day25-27

    倒数开始 滴答滴 滴答滴 task1 题目: 我们现在来做一个最简单的时钟,通过小练习来学习 Date,复习定时,然后再练习一下函数的封装具体需求如下: 在页面中显示当前日期及时间,按秒更新 格式为 ...

  3. mysql 列转行 动态写法

    -- 列转行动态sql -- 测试表DROP TABLE IF EXISTS `tb_score`; CREATE TABLE `tb_score` ( `id` int(11) NOT NULL A ...

  4. 【java】JSON.toJSONString 空对象也可以转化为JSON字符串

    <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifac ...

  5. uniapp导入导出Excel

    众所周知,uniapp作为跨端利器,有诸多限制,其中之一便是vue页面不支持传统网页的dom.bom.blob等对象. 所以,百度上那些所谓的导入导出excel的方法,大部分都用不了,比如xlsx那个 ...

  6. 微信小程序图片上传和裁剪

    本篇博客用于解决微信小程序图片裁剪问题 图片裁剪常用于头像选择和图片合成等. 图片裁剪解决方案: 目前网络上知名的微信小程序图片裁剪插件是we-cropper(文末有链接) 操作步骤:下载好we-cr ...

  7. sqli-labs lexx25-28a(各种过滤)

    less-25AND OR 过滤 less-25a基于Bool_GET_过滤AND/OR_数字型_盲注 less-26过滤了注释和空格的注入 less-26a过滤了空格和注释的盲注 less-27过滤 ...

  8. Oh my God, Swagger API文档竟然可以这样写?

    最好的总会在不经意间出现. 作为后端程序员,免不了与前端同事对接API, 一个书写良好的API设计文档可有效提高与前端对接的效率. 为避免联调时来回撕逼,今天我们聊一聊正确使用Swaager的姿势. ...

  9. EM 算法-对鸢尾花数据进行聚类

    公号:码农充电站pro 主页:https://codeshellme.github.io 之前介绍过K 均值算法,它是一种聚类算法.今天介绍EM 算法,它也是聚类算法,但比K 均值算法更加灵活强大. ...

  10. Goldengate搭建

    OGG进程 捕获进程(源端):捕获online redo log或者archived log中增量事务日志 传输进程(源端):把目标端落地的trail文件通过配置的路由信息传输到目标端 网络传输:tc ...