flume中各类channel分析对比

1. 介绍

本文主要参考flume官方文档

根据官方文档,我们主要讨论以下几类channel

memory channel

jdbc channel

kafka channel

file channel

spillable memory channel

pseudo transaction channel

custom channel

2. memory channel

把event放到内存队列当中。使用这种channel会再agent挂掉的时候导致数据丢失。

优点:速度最快的channel、容易配置

缺点:agent挂了会丢数据

3......

使用flume将kafka数据sink到HBase

1. hbase sink介绍

如果还不了解flume请查看我写的其他flume下的博客。

接下来的内容主要来自flume官方文档的学习。

顺便也强烈推荐flume 1.6 官方API

hbase的sink主要有以下两种。两种方式都提供和HBASE一样的一致性保证,即行级原子性

1.1 HbaseSink

agent的配置时提供两种序列化模式:

SimpleHbaseEventSerializer: 将整个事件body部分当做完整的一列写入hbase

RegexHbaseEventSerializer: 根据正则表达式将event body拆分到......

flume从kafka拉消息持久化到hdfs

1. 介绍

本文假设已经成功配置过flume,能够令数据成功持久化到HDFS。如果还不会的,可以参看我的文章使用flume将avro源的数据写入HDFS

本节接下来将介绍如何从kafka source到hdfs sink的操作

2. flume配置

注意在这个过程当中, flume承担consumer的角色。如果存在多个消费者,注意把他们配置在同一个消费者组中,以免出问题!!

# ------------------- 定义数据流----------------------

# source的名字

agent.sources = kafkaSource

# chann......

使用flume将avro源的数据写入HDFS

1. 介绍

本节主要讲解如何使用flume将avro源的数据写入HDFS

2. 配置flume

下载安装flume不说了,比较简单。从flume 官网下载并且在自己的机器上解压即可

执行以下操作创建配置文件

vi flume-conf.properties

按照以下来修改配置文件

# ------------------- 定义数据流----------------------

# source的名字

agent.sources = avroSource

# channels的名字,建议按照type来命名

agent.channels = memoryCh......

flume1.6原理浅析

1. 概览

flume是一个分布式的高可用、高效的数据收集和聚集系统。它支持众多数据源产生的事件数据。

2. 基本组件

2.1 agent

flume的核心组件,是一个完整的数据收集工作单元

2.2 source

agent的内部数据源,支持从其他外部数据源获取event data。支持avro、thrift等多种事件信息。

通过 IPC 或 RPC 的......