栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

flume

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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依赖包。



   org.apache.flume

   flume-ng-core

   1.8.0





   org.apache.flume

   flume-ng-configuration

   1.8.0





   org.apache.flume

   flume-ng-sdk

   1.8.0


然后创建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名称一致

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号