Flume——memory channels

Flume综述

Flume NG基本架构
①一个agent包含Source,Channel,Sink和其他组件
②一个agent对应一个配置文件
③它利用这些组件将events从一个节点传输到另一个节点或最终目的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1.简单的多个agent互联,上游的sink对应下游的source

在这里插入图片描述

  • 较复杂的多个agent互联,多个上游的sink对应下游的同一个source,并最终把数据写入HDFS

在这里插入图片描述
基本组件介绍

  1. Event
    数据在flume中流转的基本单元
    Source
    它负责接收数据源,把外部数据输入到agent里面,接收事件(event)

  2. Channel
    是位于 source 和sink之间的 缓冲区,起缓存数据的作用

  3. Sink
    负责从channel中 take 数据写入外部系统,比如下一个agent

  4. Interceptor
    作用于Source,按照预设的顺序在必要地方装饰和过滤events

  5. Channel Selector
    允许Source基于预设的标准,从所有Channel中,选择一个或多个Channel

  6. Sink Processor
    多个Sink可以构成一个Sink Group。Sink Processor可以通过组中所有Sink实现负载均衡;也可以在一个Sink失败时转移到另一个。

Flume的安装部署

1.下载Linux版本的JDK,比如jdk-8u121-linux-x64.tar.gz(将文件保存至/usr/local的目录下)

2.解压缩,比如解压到 /usr/local/ jdk1.8.0_121目录

tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local

3.配置JAVA 环境变量:

export JAVA_HOME=/usr/local/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

4.从官http://flume.apache.org/download.html 下载指定版本的安装包,并解压到/usr/local路径下,命令同上;同时利用mv 命令对fulme文件改名为:flume-bin。

5.进入压缩后的flume文件 即,/usr/local/flume1.8.0/bin目录下执行以下命令

cp flume-env.sh.template flume-env.sh
vi flume-env.sh
#vim 写入内容
export JAVA_HOME=/usr/java/jdk1.8.0_121

6.验证是否安装成功,出现flume的版本即为安装成功

./bin/flume-ng version

7.写简单的配置文件

在flume的date目录下创建avro.properties,并进行编辑
整个agent命名为date
Source 为Avro source,并命名为r1
Sink 为 logger sink,并命名为s1
Channel为 memory channel,并命名为c1

# Name the components on this agent
date.sources = r1
date.sinks = s1
date.channels = c1

#定制source,绑定channel、主机以及端口
date.sources.r1.type = avro
date.sources.r1.bind = 0.0.0.0
date.sources.r1.port = 1023
# Describe the sink
date.sinks.s1.type = logger
date.sinks.s1.maxBytesToLog= 1024

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

# Bind the source and sink to the channel
date.sources.r1.channels = c1
date.sinks.s1.channel = c1

8.启动flume的命令

/usr/local/flume-bin/bin/flume-ng agent -n hniu -c /usr/local/flume-bin/conf/ --conf-file /usr/local/flume-bin/date/avro.properties -Dflume.root.logger=INFO,console

在这里插入图片描述
启动Avro客户端并发送数据
/usr/local/flume-bin/bin/flume-ng avro-client -c /usr/local/flume-bin/conf/ -H bigdata01 -p 1023 -F /usr/local/flume-bin/avro_test.log

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值