IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> flume -> 正文阅读

[大数据]flume

一.Flume架构

flume是通过flume agent进行数据的采集、传送工作的。Flume agent可以理解为flume中的一个基本单元,它包含source、channel、sink三个部分。

Source用于数据采集工作,将采集到的数据传送到channel中。

Channel是一个通道,连接source和sink,用于数据的传送。

Sink用来消费channel中的数据,可以将数据持久化或者将数据传送给另一个source。

二.Flume Agent

FlumeAgent包含三个部分,Source、Channel和Sink。

1.Source

Agent Source可以有很多种类,比如Avro Source、Thrift Source、Exec Source、Kafka Source、Http Source,以及自定义Source等。可以根据不同的场景选用合适的Source。

2.Channel

Channel同样有很多的种类,比如Memory Channel、JDBC Channel、Kafka Channel、File Channel等。同样也可以自定义Channel。

3.Sink

Sink也是有很多种类,包括HDFS Sink、Hive Sink、Logger Sink、Avro Sink、Kafka Sink、Http Sink、ElasticSearch Sink等等,同样可以根据需要自定义Sink。

三.如何自定义Source

首先创建一个java工程,引入flume依赖包。

<dependency>

   <groupId>org.apache.flume</groupId>

   <artifactId>flume-ng-core</artifactId>

   <version>1.8.0</version>

</dependency>

<dependency>

   <groupId>org.apache.flume</groupId>

   <artifactId>flume-ng-configuration</artifactId>

   <version>1.8.0</version>

</dependency>

<dependency>

   <groupId>org.apache.flume</groupId>

   <artifactId>flume-ng-sdk</artifactId>

   <version>1.8.0</version>

</dependency>

然后创建java类,继承AbstractSource、实现Configurable、PollableSource接口。

PollableSource接口代表该Source是轮询拉取类型。我们也可以创建事件驱动类型的Source,实现EventDriveSource即可。两者的区别在于PollableSource是通过线程不断去调用process方法,主动拉取消息,而EventDrivenSource是需要触发一个调用机制,即被动等待。实现Configurable接口,以便在项目中初始化某些配置用的。

然后将我们打的jar包放到flume的lib目录下,如果有依赖jar包,也需要将依赖包放在lib目录下,如果有配置文件,需要在flume的bin目录中将配置文件或文件夹放进去,因为我们flume的启动入口就是bin目录下面的flume-ng文件。

接下来编写flume配置文件。将source类型定义为我们自定义的source。如下:

# 指定Agent的组件名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 指定Flume source(要监听的路径)
a1.sources.r1.type = com.cloudwise.bd.flume.source.MySource
# 指定Flume sink
a1.sinks.k1.type = file_roll
a1.sinks.k1.sink.directory = /Users/aladdin/flume-test/flume-source
# 指定Flume channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.channels.c1.byteCapacityBufferPercentage = 20
a1.channels.c1.byteCapacity = 800000
# 绑定source和sink到channel上
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

然后就可以启动flume程序了。进入flume目录,然后执行以下命令:

bin/flume-ng agent –c conf –f conf/test-mysource.conf –n a1

agent 代表的是我们要创建一个flume agent。

-c 用于指定配置文件目录

-f 指定使用的配置文件

-n 是启动的agent的名称,需要和配置文件中的agent名称一致

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-30 12:37:23  更:2021-10-30 12:38:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:54:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码