应用场景

Flume作为Hadoop中的日志采集工具,非常的好用,但是在安装Flume的时候,查阅很多资料,发现形形色色,有的说安装Flume很简单,有的说安装Flume很复杂,需要依赖zookeeper,所以一方面说直接安装Flume,解压即可用,还有一方面说需要先装了Zookeeper才可以安装Flume。那么为何会才生这种情况呢?其实两者说的都对,只是Flume的不同版本问题。

背景介绍

Cloudera 开发的分布式日志收集系统 Flume,是 hadoop 周边组件之一。其可以实时的将分布在不同节点、机器上的日志收集到 hdfs 中。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 FLume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重,这点可以在 BigInsights 产品文档的 troubleshooting 板块发现。为了解决这些问题,2011 年 10 月 22 号,cloudera 完成了 Flume-728,对 Flume 进行了里程碑式的改动:重构核心组件、核心配置以及代码架构,重构后的版本统称为 Flume NG(next generation);改动的另一原因是将 Flume 纳入 apache 旗下,cloudera Flume 改名为 Apache Flume。

Flume OG

FLUM OG 有三种角色的节点:代理节点(agent)、收集节点(collector)、主节点(master)。
-agent 从各个数据源收集日志数据,将收集到的数据集中到 collector,然后由收集节点汇总存入 hdfs。master 负责管理 agent,collector 的活动。
-agent、collector 都称为 node,node 的角色根据配置的不同分为 logical node(逻辑节点)、physical node(物理节点)。对 logical nodes 和 physical nodes 的区分、配置、使用一直以来都是使用者最头疼的地方。
-agent、collector 由 source、sink 组成,代表在当前节点数据是从 source 传送到 sink。


Flume OG 架构图


Flume OG 节点组成图

Flume NG

NG 只有一种角色的节点:代理节点(agent)。
没有 collector、master 节点。这是核心组件最核心的变化。
去除了 physical nodes、logical nodes 的概念和相关内容。
agent 节点的组成也发生了变化。NG agent 由 source、sink、channel 组成。


Flume NG 架构图


Flume NG 节点组成图

Flume OG vs Flume NG

在 OG 版本中,Flume 的使用稳定性依赖 zookeeper。它需要 zookeeper 对其多类节点(agent、collector、master)的工作进行管理,尤其是在集群中配置多个 master 的情况下。当然,OG也可以用内存的方式管理各类节点的配置信息,但是需要用户能够忍受在机器出现故障时配置信息出现丢失。所以说 OG 的稳定行使用是依赖zookeeper 的。

而在 NG 版本中,节点角色的数量由 3 缩减到 1,不存在多类角色的问题,所以就不再需要 zookeeper 对各类节点协调的作用了,由此脱离了对 zookeeper 的依赖。由于 OG 的稳定使用对 zookeeper 的依赖表现在整个配置和使用过程中,这就要求用户掌握对 zookeeper 集群的搭建及其使用


OG 在安装时:在 flume-env.sh 中设置$JAVA_HOME。 需要配置文件 flume-conf.xml。其中最主要的、必须的配置与 master 有关。集群中的每个 Flume 都需要配置 master 相关属性(如 flume.master.servers、flume.master.store、flume.master.serverid)。 如果想稳定使用 Flume 集群,还需要安装 zookeeper 集群,这需要用户对 zookeeper 有较深入的了解。 安装 zookeeper 之后,需要配置 flume-conf.xml 中的相关属性,如 flume.master.zk.use.external、flume.master.zk.servers。 在使用 OG 版本传输数据之前,需要启动 master、agent。

NG 在安装时,只需要在 flume-env.sh 中设置$JAVA_HOME。

所以,当下我们使用Flume的时候,一般都采用Flume NG

Flume OG和Flume NG的区别相关推荐

  1. Flume基础及Flume高质量博客合集

    最近在学习Flume基础,Flume适用场景,及将源码修改为按文件读取数据,Flume监控目录文件夹,监控文件的原理: Flume基础 1. Flume简介 2. Flume 3要素 3. 适用场景 ...

  2. flume和sqoop导数据的区别

    flume和sqoop导数据的区别? flume 产生数据就开始读数据,并把数据上传到HDFS上 sqoop导数据比flume慢一天,且只能为离线数据的导入 T+1 模式(导入为前一天的数据) 周期性 ...

  3. flume linux 命令,flume启动命令 · Mr.Deng’s Blog

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 突然发现拖了很久的flume启动命令了,今天就简单讲讲flume的启动命令吧. 如何启动flume flume目录 以上 ...

  4. Flume简介及Flume部署、原理和使用介绍

    Flume简介及Flume部署.原理和使用介绍 Flume概述 ​ Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统.Flume基于流式架构,灵活简单. ...

  5. flume 写入文件服务器,Flume环境配置以及基本操作

    flume的作用是从接受外界的日志信息,然后输出到本地的一个框架. agent是Flume很重要的组成,包括有source,channel,sink. source是从外部接受日志. channel跟 ...

  6. 大数据学习笔记52:Flume Interceptors(Flume拦截器)

    文章目录 一.Flume Interceptors用户指南 二.Timestamp Inerceptor 三.Host Interceptor 四.Static Interceptor 五.UUID ...

  7. 大数据学习笔记50:Flume Channels(Flume通道)

    文章目录 一.Flume Channels用户指南 二.Memory Channel(内存通道) (一)用户指南网址 (二)案例演示 (三)应用场景 三.JDBC Channel(JDBC通道) (一 ...

  8. 大数据学习笔记49:Flume Sinks(Flume接收器)

    文章目录 一.Flume Sinks用户指南 二.Logger Sink (一)用户指南网址 (二)通过Logger Sink在控制台显示收集到的数据 1.在master节点上flume配置目录创建s ...

  9. 大数据学习笔记48:Flume Sources(Flume源)

    文章目录 一.Flume Sources用户指南 二.NetCat TCP Source (一)用户指南网址 (二)利用Source组件接收NetCat数据 1.在slave1节点上安装NetCat ...

最新文章

  1. 专访:经历了时间检验的不仅是论文,还有唐杰自己 | SIGKDD 2020时间检验奖
  2. 云原生 DevOps 的 5 步升级路径
  3. airpods有时能连上有时连不上怎么办?
  4. 【译】Pure Proof-of-Stake Blockchains: Secure Blockchain Decentralization via Committees
  5. .net bootstrap 下拉树状选择框_Bootstrap搭建图书管理系统
  6. 直播预告 | 如何在有限数据下实现资讯类网站海量信息自动分类
  7. idea查看类关系_IDEA查看类关系图【正确姿势】,非常实用
  8. 信息学奥赛C++语言:尼克的岁数
  9. adsense三种广告要屏蔽
  10. 算法---计算平方根(牛顿迭代法)
  11. AcWing 99. 激光炸弹 (二维前缀和)
  12. floating输入 高阻输入_STM32 GPIO八种输入输出模式
  13. 数字人民币APP(试点版)上线引关注 | 产业区块链发展周报
  14. 5G时代|淘宝直播高画质低延时技术探索
  15. vue清除路由历史记录
  16. 商务部都在努力为直销行业创造良好的发展环境,你还在等什么?
  17. java 生成二维码图片
  18. Windows故障恢复控制台使用方法
  19. 摆的频率公式_频率与转速的公式
  20. android jetpack ViewModel 报错解决方法

热门文章

  1. html5 手机uc浏览器 复制链接,删除手机UC浏览器强制插入关键词链接的方法
  2. 洛谷P1386座位安排
  3. 华晨宏盛分享2021年个人所得税起征点是个人所得税税率一览表
  4. java基于springboot+vue的大学生宿舍公寓管理系统 element
  5. 【自然语言处理】【对比学习】SimCSE:基于对比学习的句向量表示
  6. Your license has expired IDEA过期问题
  7. js: 动画 筋斗云导航栏 仿淘宝关闭二维码
  8. ARM基础教程 | ARM、Cortex-M与ARMv8-M什么关系?
  9. 如何提拔骨干及挑选接班人
  10. 怎么获取网易云歌单外链链接