zoukankan      html  css  js  c++  java
  • 分布式日志收集系统- Cloudera Flume 介绍

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

    Flume 部署结构

    192143878

      flume架构简单,可靠,灵活, 数据流(data flow)是flume中最主要的抽象,data flow描述了数据从产生,传输、处理并最终写入目的地的一条路径, 数据流由一系列逻辑节点组成,它们能对接受到的事件(EVENT)进行传输,聚合等操作(在上图中,实线描述了data flow)
       Agent: 用于采集数据,agent是flume中产生数据流的地方,同时,agent会将产生的数据流传输到collector。
      Collector: 用于接受数据,对数据进行聚合,往往会产生一个更大的流。

    逻辑节点
       逻辑节点是一个非常灵活的抽象, 每一个逻辑节点都有两个组件组成(source 和 sink),source告诉逻辑节点从哪里去收集数据,sink告诉逻辑节点将数据发送到什么地方.在source与sink之间可以添加一些装饰器, 用于对经过的数据(event)做简单处理

    逻辑节点与物理节点
       理解逻辑节点和物理节点之间的区别很重要,物理节点对应于一台机器上的单独的一个JVM进程, 通常一台物理机器对应一个物理节点, 物理节点可以作为逻辑节点的容器, 一个物理节点可以映射出多个逻辑节点,这些逻辑节点链接成一起, 形成数据流

    flume 设计目标 【Reliability,Scalability,Manageability,Extensibility】
      Reliability:Flume提供3中数据可靠性选项,包括End-to-end, Store on failure和Best effort, 其中End-to-end使用了磁盘日志和接受端Ack的方式,保证Flume接受到的数据会最终到达目的.Store on failure在目的不可用的时候,数据会保持在本地硬盘。和End-to-end不同的是,如果是进程出现问题,Store on failure可能会丢失部分数据.Best effort不做任何QoS保证。
      Scalability:Flume的3大组件:collector、master和storage tier都是可伸缩的。需要注意的是,Flume中对事件的处理不需要带状态,它的Scalability可以很容易实现
      Manageability:Flume利用ZooKeeper和gossip,保证配置数据的一致性、高可用。同时,多Master,保证Master可以管理大量的节点.
      Extensibility:基于Java,用户可以为Flume添加各种新的功能,如通过继承Source,用户可以实现自己的数据接入方式,实现Sink的子类,用户可以将数据写往特定目标,同时,通过SinkDecorator,用户可以对数据进行预处理。

    本文出自 “yyj0531” 博客,请务必保留此出处http://yaoyinjie.blog.51cto.com/3189782/818739

  • 相关阅读:
    iOS工作笔记(十二)
    隐藏底部导航栏tabbar
    SDWebImage的使用及图片不改变问题的解决
    NSString转化为NSDictionary
    makeObjectsPerformSelector用法
    iOS中点与像素
    iOS动画的简单介绍
    Pods安装时卡在Updating local specs repositories界面时的处理
    使用uicollectionView时需要注意的问题
    Sublime Text 3 自定义配置快捷键
  • 原文地址:https://www.cnblogs.com/datascientist/p/3468583.html
Copyright © 2011-2022 走看看