美文网首页
冰解的破-Flume

冰解的破-Flume

作者: 大佛爱读书 | 来源:发表于2018-07-04 16:03 被阅读0次
flume

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

当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng。

学习整理:

  • flume-NG和flume区别与联系?

flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。
  但随着 FLume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.9.4. 中,日
  志传输不稳定的现象尤为严重,为了解决这些问题,2011 年 10 月 22 号,cloudera 完成了 Flume-728,对 Flume 进行了里程碑式的改动:重构核心组件、核心配置以及代码架构,重构后的版本统称为 Flume NG(next generation);改动的另一原因是将 Flume 纳入 apache 旗下,cloudera Flume 改名为 Apache Flume。


flume结构
  • flume组件中channel有哪些类型?
  1. Memory Channel(内存Channels)
    events存储在配置最大大小的内存队列中。对于流量较高和由于agent故障而准备丢失数据的流程来说,这是一个理想的选择。
a1.channels = c1
a1.channels.c1.type = memory
a1.channels.c1.capacity = 10000
a1.channels.c1.transactionCapacity = 10000
a1.channels.c1.byteCapacityBufferPercentage = 20
a1.channels.c1.byteCapacity = 800000
  1. JDBC Channel
    events存储在持久化存储库中(其背后是一个数据库)。JDBC channel目前支持嵌入式Derby。这是一个持续的channel,对于可恢复性非常重要的流程来说是理想的选择。
a1.channels = c1
a1.channels.c1.type = jdbc
  1. Kafka Channel
    events存储在Kafka集群中。Kafka提供高可用性和高可靠性,所以当agent或者kafka broker 崩溃时,events能马上被其他sinks可用。

Kafka channel可以被多个场景使用:

  • Flume source和sink - 它为events提供可靠和高可用的channel
  • Flume source和interceptor,但是没sink - 它允许写Flume evnets到Kafka topic
  • Flume sink,但是没source - 这是一种低延迟,容错的方式从Kafka发送events到Flume sinks 例如 HDFS, HBase或者Solr
a1.channels.channel1.type = org.apache.flume.channel.kafka.KafkaChannel
a1.channels.channel1.kafka.bootstrap.servers = kafka-1:9092,kafka-2:9092,kafka-3:9092
a1.channels.channel1.kafka.topic = channel1
a1.channels.channel1.kafka.consumer.group.id = flume-consumer
  1. File Channel
    在磁盘上指定一个目录用于存放event,同时也可以指定目录的大小。优点是数据可恢复,相对于memory channel来说缺点是要频繁的读取磁盘,速度较慢。
a1.channels = c1
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /mnt/flume/checkpoint
a1.channels.c1.dataDirs = /mnt/flume/data
  1. Spillable Memory Channel
    event存放在内存和磁盘上,内存作为主要存储,当内存达到一定临界点的时候会溢写到磁盘上。其中和了memory channel和File channel的优缺点。该channel目前正在试验中,不要求在生产环境中使用。
a1.channels = c1
a1.channels.c1.type = SPILLABLEMEMORY
a1.channels.c1.memoryCapacity = 10000
a1.channels.c1.overflowCapacity = 1000000
a1.channels.c1.byteCapacity = 800000
a1.channels.c1.checkpointDir = /mnt/flume/checkpoint
a1.channels.c1.dataDirs = /mnt/flume/data
  1. Pseudo Transaction Channel
    只用于单元测试,不用于生产环境使用
  2. Custom Channel
    自定义channel是你实现Channel接口。当Flume agent启动时,一个自定义channel类和它依赖项必须包含在agent的classpath。
a1.channels = c1
a1.channels.c1.type = org.example.MyChannel

另外介绍Flume Channel Selectors

  1. Replicating Channel Selector(default) (复制channel选择器)
a1.sources = r1
a1.channels = c1 c2 c3
a1.sources.r1.selector.type = replicating
a1.sources.r1.channels = c1 c2 c3
a1.sources.r1.selector.optional = c3
  1. Multiplexing Channel Selector (多路复用Channel选择器)
a1.sources = r1
a1.channels = c1 c2 c3 c4
a1.sources.r1.selector.type = multiplexing
a1.sources.r1.selector.header = state
a1.sources.r1.selector.mapping.CZ = c1
a1.sources.r1.selector.mapping.US = c2 c3
a1.sources.r1.selector.default = c4
  1. Custom Channel Selector (自定义Channel选择器)
    一个自定义channel选择器(selector)是实现ChannelSelector的接口。当Flume agent启动时,一个自定义channel selector类和它依赖项必须包含在agent的classpath。
a1.sources = r1
a1.channels = c1
a1.sources.r1.selector.type = org.example.MyChannelSelector

参见:
flume1.8 Channel类型介绍(四):
https://www.cnblogs.com/swordfall/p/8169554.html

TO BE CONTINUED ......

相关文章

  • 冰解的破-Flume

    Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在...

  • 冰解的破-Hbase

    学习整理: hbase运行原理,rowkey的作用? HBase 是一个高可靠、高性能、面向列、可伸缩的分布式存储...

  • 冰解的破-Redis

    Redis 是一个 Key-Value 存储系统。和 Memcached 类似,它支持存储的 value 类型相对...

  • 冰解的破-HDFS

    HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系...

  • 冰解的破-kerberos

    学习整理: 理解kerberos在spark/hadoop体系下的应用: 说道安全,可能是整个大数据体系中最晦涩难...

  • 冰解的破-spark

    Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AM...

  • 冰解的破-Scrapy

    Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如Base...

  • 冰解的破-Linux

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程...

  • 冰解的破-hive

    Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL)...

  • 冰解的破-ZooKeeper

    学习整理: zookeeper有哪些应用,HA热备、分布式锁、集中配置用到了zookeeper的什么? ZooKe...

网友评论

      本文标题:冰解的破-Flume

      本文链接:https://www.haomeiwen.com/subject/jgneuftx.html