Flume Channel

一、Memory Channel

  1. 事件将被存储在内存中的具有指定大小的队列中。
  2. 特点是速度快,但断电丢失数据。
  3. 非常适合那些需要高吞吐量但是可以容忍极端情况下会丢失数据的场景下。
    Flume Channel_第1张图片

二、JDBC Channel

  1. 了解,一般不用
  2. 事件被持久存储在可靠的数据库中。
  3. 提供较好的效率和可靠性可恢复性。
  4. 目前支持嵌入式的Derby数据库。
    Flume Channel_第2张图片

三、File Channel

  1. 事件将被存储在磁盘中的文件中。
  2. 特点是速度慢,但断电不会丢失数据。
  3. 非常适合那些需要高可靠性,可恢复,但性能要求不高的场景。
    Flume Channel_第3张图片

四、Spillable Memory Channel

  1. 可溢写的内存通道。
  2. 需要同时配置内存和磁盘,优先内存来实现通道,在突发的大量数据到来时,内存通道被占满,此时会将多出来的数据溢写到磁盘中,保证不会丢失数据。
  3. 相当于结合了内存通道和文件通道的优点,平常可以基于内存提供良好的效率,在数据突增时,可以启用文件,这样即使性能有下降,但不至于失败。
  4. 这个通道,官方不建议用在生产环境下。
    Flume Channel_第4张图片

五、Custom Channel

  1. 如果以上内置的Channel都不能满足需求,可以自己开发Channel.
  2. 按照Flume要是写一个类实现相应接口。
  3. 将类打成jar放置到flume的lib目录下。
  4. 在配置文件中通过类的全路径名加载Channel。 5. Custom Channel

你可能感兴趣的:(#,Flume)