数仓开发之Flume《一》:Flume的概述及安装

3 篇文章 0 订阅
1 篇文章 0 订阅

目录

1. 🥙Flume概述

1.1 Flume简介

1.2 Flume的架构

1. 🧀agent介绍

2. ​Agent 主要有 3 个部分组成,Source、Channel、Sink。

🥗2.1 Source

🥗2.2 Sink

🥗2.3 Channel

3. 🧀Flume 自带两种 Channel:Memory Channel 和 File Channel。

4. 🧀Event 介绍

2. 🥙Flume的安装配置

2.1 下载地址

2.2 安装部署 


1. 🥙Flume概述

1.1 Flume简介

  • Flume是一种可配置、高可用的数据采集工具,主要用于采集来自各种流媒体的数据(Web服务器的日志数据等)并传输到集中式数据存储区域。
  • Flume 支持在日志系统中定制各种数据发送方,用于收集数据;并且可以对数据进行简单处理,将其写到可定制的各种数据接收方(如文本、HDFS、HBase等)。
  • Flume最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS。

1.2 Flume的架构

单个agent采集数据

多级agent之间串联-级联flume

1. 🧀agent介绍

Flume中最核心的角色是agent,flume采集系统就是由一个个agent连接起来所形成的一个或简单或复杂的数据传输通道。 对于每一个Agent来说,它就是一个独立的守护进程(JVM),它负责从数据源接收数据,并发往下一个目的地。

2. ​Agent 主要有 3 个部分组成,Source、Channel、Sink。

🥗2.1 Source

Source 是负责接收数据到 Flume Agent 的组件。Source 组件可以处理各种类型、各种格式的日志数据----》说白了就是就是数据来源

常用的Source类型

描述

Avro source

监听Avro端口并且从外部Avro客户端接收Event需指定被监听的IP和端口号。

Exec Source

可以通过指定的linux操作命令对日志进行读取,使用exec时需指定使用的命令

Spooling Directory Source

读取目录里的文件,当出现新文件时会读取该文件并获取数据(文件在读取过程中不能修改)

NetCat source

监听指定的端口并将接收到的数据的每一行转换为一个事件。

Kafka Source

作为一个消费者,从Kafka的topic读取消息

Http Source

接收HTTP 的GET和POST请求作为Flume的事件

TailDir Source

监控目录里的正则文件,并支持断点续传。

🥗2.2 Sink

下沉组件,用于往下一级agent传递数据或者向最终存储系统传递数据。Sink 组件目的地包括 hdfs、logger、avro、thrift、ipc、file、HBase、solr、自定义。-----》数据最终写出的位置

常用的Sink类型

描述

Logger Sink

将数据写到Flume的log中,通常用于测试或者调试

Avro Sink

将数据发送给其他Avro Source

File Roll Sink

将数据存放在本地文件系统中,根据时间或者大小生成文件

Kafka Sink

将数据写入Kakfa中

HBase Sink

将数据写入Hbase

AsyncHbase Sink

使用异步的方式将数据写入Hbase

Hive Sink

将数据写入Hive

HDFS Sink

将数据写入HDFS

ElasticSearch Sink

将数据写入ElasticSearch

MorphilineSoir Sink

将数据写入Soir

🥗2.3 Channel

Channel 是位于 Source 和 Sink 之间的缓冲区。因此,Channel 允许 Source 和 Sink 运作在不同的速率上。Channel 是线程安全的,可以同时处理几个 Source 的写入操作和几个Sink 的读取操作。------》中间的缓冲区

常用的Channel类型

描述

Memory Channel(常用)

储存Event在内存队列中,如果宕机可能会造成数据的丢失,具有很高的吞吐量

JDBC Channel

将Event储存在持久化的数据库中

Kafka Channel(常用)

将Event储存在Kafka中,Kakfa提供了高可用和复制性,当Kafka或agent崩溃时也不会丢失

File Channel(常用)

将Event持久化在本地文件系统里(性能较差),但可以保证数据不会丢失

Spillable Memory Channel

Event数据存储在内存和磁盘上,当内存队列满了将会持久化到磁盘文件(新加的,不稳定)

3. 🧀Flume 自带两种 Channel:Memory Channel 和 File Channel

  • Memory Channel 是内存中的队列。Memory Channel 在不需要关心数据丢失的情景下适用。如果需要关心数据丢失,那么 Memory Channel 就不应该使用,因为程序死亡、机器宕机或者重启都会导致数据丢失。
  • File Channel 将所有事件写到磁盘。因此在程序关闭或机器宕机的情况下不会丢失数据。

4. 🧀Event 介绍

数据agent内部数据流转的封装形式;

  • Source组件在获取到原始数据后,需要封装成Event放入channel; Sink组件从channel中取出Event后,需要根据目标存储的需求,转成其他形式的数据输出。
  • Event封装对象主要有两部分组成: Headers和 Body
  • header是一个集合 Map[String,String],用于携带一些KV形式的元数据(标志、描述等) body: 就是一个字节数组byte[];装载具体的数据内容
Event: {  
headers:HashMap<String,String>  ==> {host=doitedu01,timestamp=17623745832457} 元数据
body:byte[] ==> 61 20 61 20 61 61 61 20 61 20 0D    字节数据 
}  

2. 🥙Flume的安装配置

Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境

2.1 下载地址

(1)Flume 官网地址:Welcome to Apache Flume — Apache Flume
(2)文档查看地址:Flume 1.11.0 User Guide — Apache Flume
(3)下载地址:Index of /dist/flume

2.2 安装部署 

上传安装包到数据源所在节点上,然后解压 

tar -zxvf apache-flume-1.11.0-bin.tar.gz

  • 12
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值