• Flume 初探


    Apache 是一个高可用、高可靠的,分布式的海量日志采集、聚合、传输系统,基于流式架构,灵活简单。 Flume 最主要的作用就是实时读取服务器本地磁盘的数据,将数据写入HDFS中。 Flume组成架构详解: Source输入端常用的类型有:spooling directory、exec、avro、syslog、netcat 等 Put事务的流程: doPut:将批数据先写入临时缓冲区putList doCommit:检查channel内存队列是否足够合并 doRollback;channel内存队列空间不足,回滚数据 Channel是位于Source和Sink之间的缓冲区,Flume自带两种channel:MemoryChannel和FileChannel MemoryChannel是基于内存的缓存,在不需要关心数据丢失的情景下使用。 FileChannel是Flume的持久化Channel,系统宕机不会丢失数据。 Take事务: doTake:先将数据取到临时缓冲区takeList doCommit:如果数据发送成功,则清除临时缓冲区的takeList doRollback:数据发送过程中如果出现异常,rollback将临时缓冲区takeList中的数据归还给channel内存队列 Sink组件常见的目的地包括: HDFS、Kafka、avro、logger、File、自定义。 Sink不断地轮询Channel中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个Flume Agent。 Sink是完全事务性的。在从Channel批量删除数据之前,每个Sink用Channel启动一个事务。批量事件一旦成功写出到存储系统或下一个Flume Agent,Sink就利用Channel提交事务。事务一旦被提交,该Channel从自己的内部缓冲区删除事件。 Sink组件目的地包括hdfs、logger、avro、thrift、ipc、file、null、HBase、solr、自定义。 Agent是一个JVM进程,是flume数据传输的基本单元 Agent主要有3个部分组成,Source、Channel、Sink。
  • 相关阅读:
    sql当前行数据和之前行数据相加减循环处理
    Sql 查询库、表、列名的语句
    sql 特殊字符替换
    pandas 篇
    JAVA学习--面向对象的特征二:继承性
    JAVA学习--super使用
    JAVA学习--方法的参数传递
    JAVA学习--可变个数的形参的方法
    JAVA学习--面向对象思想的落地法则
    JAVA学习--方法的重载
  • 原文地址:https://www.cnblogs.com/nicen/p/11578958.html
Copyright © 2020-2023  润新知