大白话说Flume

Flume是很早之前就存在的一个日志框架,它的存在为我们信息传递提供了一个可行的方案,且它本身为支持多变的应用场景而存在着多种数据传输组件类型

Flume最主要的目的就是隔离系统与数据,同时使得数据统一传递速率以及格式,这一点和Kafka的作用比较类似,不过Flume的使用更加全面

Flume主要由三大组件组成,source、channel、sink,三大组件组成了Flume运行的一个agent,且Flume的运行也基于agent,agent文件的书写也不是很麻烦,下面给大家看一个例子

a1.sources = r1
a1.sinks = k1
a1.channels = c1

#  source需要改动的是源和目的地,此处是源,使用nc工具
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink 需要改动的是源和目的地,此处是目的地,且为Spark配置一个连接的地址
a1.sinks.k1.type = org.apache.spark.streaming.flume.sink.SparkSink
a1.sinks.k1.hostname=192.168.182.146
a1.sinks.k1.port = 8888
a1.sinks.k1.batchSize= 2000 


# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

agent的书写就是这样的方便,下面给大家提供几个常用的组件类型,以便大家学习使用时有目标的开展

Networksource监控一个服务器的一个端口
Hdfssink将数据输出到hdfs
Loggersink将数据发送到flume的日志中,测试时使用
Esecsource监控一个文件
Spooldirsoucre监控一个文件夹下所有的文件
Taildirsource监控多个文件夹下的文件
Filechannels用文件的形式缓存数据,对数据安全要求高时使用
Memorychnnels用内存存储,数据不安全,但是快

而Flume运行也很简单我们只需要使用bin下的flume命令就可以了,如下

bin/flume-ng agent --conf conf --conf-file conf/socket-source.properties --name a1 -Dflume.root.logger=INFO,console
--conf 指定Flume运行依赖的配置文件,一般都是使用Flume自带的conf文件夹下的文件,可以缩写为-c
--conf-file 是你写的agent文件,可以缩写为-f
--name 是你要运行那个agent,可以缩写为-n
-Dflume.root.logger 是输出日志,并设计输出级别和位置,一般在调试的时候使用,并输出到命令行中

至于其他的命令参数可以通过flume-ng命令,不带任何参数的形式,得到提示,或者可以用help+命令的形式得到提示

Flume的下载去官网就好Flume官网

进入官网后除了下载,你也可以在如下选项中得到你所用版本的agent全套配置样例
在这里插入图片描述
在这里插入图片描述
选择版本之后我们选用户指南就好,不要选择第二个,那个是Flume参与开发的指南,点击之后你就可以在最左侧的导航栏中选择你想了解的agent三大组件的不同配置样例
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值