flume与hdfs
Posted kongzhagen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flume与hdfs相关的知识,希望对你有一定的参考价值。
Flume定义:
Flume是Cloudera提供的一个高可用的、高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构, 灵活简单。
为什么选用Flume
主要作用: 实时读取服务器本地磁盘的数据, 将数据写入到HDFS
Flume的组织架构
1、最简单的组织架构
2、Flume流式处理过程
说明:
source: 数据输入端
常见类型: spooling directory, exec, syslog, avro, netcat等
channel:位于source和sink之间的缓冲区
memory: 基于内存缓存, 允许数据有丢失
file: 持久化channel, 系统宕机不会丢失数据
sink: 数据输出端
常见的目的地有: HDFS, Kafka, logger, avro, File, 自定义
Put事务流程:
doPut: 将批数据写入临时缓冲区putList
doCommit: 检查channel内存队列是否足够合并
doRollback: 内存队列空间不足, 回滚数据
Take事务流程:
doTake: 将批数据提取到临时缓冲区takeList
doCommit: 如果数据全部发送成功, 则清空临时缓冲区takeList
doRollback: 如果数据发送过程中出现异常, 则将临时缓冲区takeList中数据返还给channel
以上是关于flume与hdfs的主要内容,如果未能解决你的问题,请参考以下文章
[Flume][Kafka]Flume 与 Kakfa结合例子(Kakfa 作为flume 的sink 输出到 Kafka topic)