首页 > 其他分享 >Hadoop进级教程之-Flume架构原理

Hadoop进级教程之-Flume架构原理

时间:2024-01-23 11:58:13浏览次数:28  
标签:Flume 数据源 Hadoop Source 进级 Sink event Channel

Apache Flume是一个分布式的、可靠和易用的日志收集系统,用于将大量日志数据从许多不同的源进行收集、聚合,最终移动到一个集中的数据中心进行存储。Flume的使用不仅仅限于日志数据聚合,由于数据源是可定制的,Flume可以用于传输大量数据,包括但不限于网络流量数据、社交媒体生成的数据、电子邮件消息和几乎所有可能的数据源。

架构原理

Flume中最小的独立运行单位是Agent,Agent是一个JVM进程,运行在日志收集节点(服务器节点),其包含三个组件——Source(源)、Channel(通道)和Sink(接收地)。数据可以从外部数据源流入到这些组件,然后再输出到目的地。一个Flume单节点架构如图

image

Flume中传输数据的基本单位是event(如果是文本文件,通常是一行记录),event包括event头(headers)和event体(body),event头是一些key-value键值对,存储在Map集合中,就好比HTTP的头信息,用于传递与体不同的额外信息。event体为一个字节数组,存储实际要传递的数据。event的结构如图

image

event从Source流向Channel,再流向Sink,最终输出到目的地。event的数据流向如图

image

  • Source用于消费外部数据源中的数据(event,例如Web系统产生的日志),一个外部数据源(如Web服务器)可以以Source识别的格式向Source发送数据。
  • Channel用于存储Source传入的数据,当这些数据被Sink消费后则会自动删除。
  • Sink用于消费Channel中的数据,然后将其存放进外部持久化的文件系统中(例如HDFS、HBase和Hive等)。
    Flume可以在一个配置文件中指定一个或者多个Agent,每个Agent都需要指定Source、Channel和Sink三个组件以及他们的绑定关系,从而形成一个完整的数据流。

Source、Channel和Sink根据功能的不同有不同的类型,Source组件根据数据源的不同,常用类型与描述如表

image

Channel组件根据存储方式的不同,常用类型与描述如表

image

ink组件根据输出目的地的不同,常用类型与描述如表

image

Flume除了可以单节点直接采集数据外,也提供了多节点共同采集数据的功能,多个Agent位于不同的服务器上,每个Agent的Avro Sink将数据输出到了另一台服务器上的同一个Avro Source进行汇总,最终将数据输出到了HDFS文件系统中

image

来源:
作者:孙俊伟
微 信 名称:编程树
微 信 号:yuzhiyin1856

标签:Flume,数据源,Hadoop,Source,进级,Sink,event,Channel
From: https://www.cnblogs.com/hefeng2014/p/17981990

相关文章

  • hadoop优化namenode内存优化
    Namenode内存配置在Hadoop2.x里,如何配置NameNode内存?NameNode默认内存2000M。如果你的服务器内存是4G,那一般可以把NN内存设置成3G,留1G给服务器维持基本运行(如系统运行需要、DataNode运行需要等)所需就行。在hadoop-env.sh文件中设置:HADOOP_NAMENODE_OPTS=-Xmx3072mHadoop3.x系列,如......
  • hadoop垃圾回收
    开启回收站之后,删除的文件会送进回收站,等待超时后再彻底删除,这样子方便恢复原数据,起到防止误删除、备份等作用。本质上是将文件放在特定目录存储,跟windows的回收站功能一样。单位是min参数说明:1、默认值fs.trash.interval=0,0表示禁用回收站;其他值表示设置文件的存活时间;2......
  • 实验 3 Spark 和 Hadoop 的安装
    (1)启动Hadoop,在HDFS中创建用户目录“/user/hadoop”;  (2)在Linux系统的本地文件系统的“/home/hadoop”目录下新建一个文本文件test.txt,并在该文件中随便输入一些内容,然后上传到HDFS的“/user/hadoop”目录下;  (3)把HDFS中“/user/hadoop”目录下的test.txt......
  • Hive报错:Call From hadoop01/172.23.238.2 to hadoop01:10020 failed on connection e
    问题描述在阿里云服务器上安装的Hadoop和Hive,刚开始关闭了防火墙。但是由于服务器被被黑客安装挖矿程序,所以开启了防火墙。但是即使开启了所有可能的端口,但是在向Hive中插入数据时,依然报错提示:CallFromhadoop01/172.23.238.2tohadoop01:10020failedonconnectionexception......
  • hadoop完全分布式安装部署
    简介Hadoop的完全分布式模式是在多台机器上运行Hadoop集群,实现更高的性能和可伸缩性。以下是Hadoop完全分布式模式的简要安装部署。环境准备确保你的环境满足以下要求:•操作系统:CentOS•Java:安装Java8或更高版本•SSH:确保所有节点之间可以通过SSH互相通信安装部署JDK......
  • Flume安装配置
    简介ApacheFlume是一个分布式、可靠、高可用的服务,用于有效地收集、聚合和移动大规模数据。Flume主要用于大数据环境下的日志收集和数据传输,能够帮助用户实现数据流的可靠传输和集中处理。flume安装配置解压安装包tar-zxvfapache-flume-1.9.0-bin.tar.gz-C/opt/module......
  • Hadoop组件架构
    一、HDFS1.HDFS架构HDFS是一个主/从(Master/Slave)体系结构,由三部分组成:NameNode和DataNode以及SecondaryNamenode:NameNode负责管理整个文件系统的元数据,比如文件名、文件目录结构、文件属性(生成时间、block副本数、权限)、block大小以及组成文件的block信息。DataNode负责文件......
  • Hadoop集群搭建
    Hadoop集群搭建1、服务器配置服务器名称配置master2C2Gslave12C2Gslave21C2G1.1修改主机名#Centos永久修改主机名命令hostnamectlset-hostnamemaster1.2主机映射vim/etc/hosts#需要设置的服务器:ip为内网,其他服务器:ip为外网172.16.0.3mas......
  • Hadoop集群常用组件的命令
    1.Hadoop(1).HDFS:启动HDFS:start-dfs.sh关闭HDFS:stop-dfs.sh格式化NameNode:hdfsnamenode-format查看文件系统状态:hdfsdfsadmin-report创建目录:hdfsdfs-mkdir/path/to/directory上传本地文件到HDFS:hdfsdfs-put/path/to/local/file/path/to/hdfs/directory下载HDFS文件......
  • 深入理解 Hadoop (一)网络通信架构与源码浅析
    HadoopRPC网络通信框架原理剖析YARNRPC服务端的工作大致可以分为四个阶段:第一个阶段:Server初始化和启动在Server初始化的时候,会初始化Listener组件(内部启动了一个AcceptSelector绑定了相应的端口,用来处理客户端的OP_ACCEPT事件),内部还初始化了一组Reader线程,其......