flume avro java_flume之Avro Source和Avro Sink

一、Avro Souce介绍

Flume主要的RPC Source是Avro Source

Avro Source被设计为高扩展的RPC服务器端,能从其他的Flume Agent的Avro Sink或者使用Flume的SDK发送数据的客户端应用,接受数据到一个Flume Agent中。

Avro Source的可扩展性结合Channel担当了缓冲器的角色,使得Flume Agent能够处理重要的负载峰值。

Flume的Avro Source使用Netty-Avro inter-process的值通信(IPC)协议来通信,因此可以用Java或JVM语言发送数据到Avro Source。如果想从应用使用Avro Source发送事件给一个Agent,你可以利用Flume SDK,或者嵌入式Agent来完成。

Avro Source可以配置用来从配置好输出压缩事件的Avro Sink中接收压缩的事件。也可以配置来确保接收任何客户端或Sink发送的使用SSL加密的数据。

二、Avro Source参数说明

配置参数

默认值

描述

type

Avro Source的别名是avro,也可以使用完整类别名称org.apache.flume.source.AvroSource

bind

绑定的ip地址或主机名。使用0.0.0.0表示绑定机器所有的接口

port

绑定的端口

threads

infinity

接收从客户端或Avro Sink传入的数据的最大工作线程的数量,默认无穷大

ssl

false

设置为true时表示,所有连接到Source的客户端都需要使用SSL,如果使用了SSL,则keystore和keystore-password参数是必须的。

keystore

使用SSL的keystore的路径

keystore-password

打开keystore使用的密码

keystore-type

JKS

正在使用的keystore的类型

compression-type

用于解压缩传入数据的压缩格式。唯一支持的压缩格式是zlib。如果要接收zlib压缩的数据,设置该参数为deflate。

ipFilter

false

设置为true启用ip过滤

ipFilter.rules

通过此配置,定义ip过滤的表达式规则

Avro Source使用Netty服务器来处理传入的请求。Netty服务器使用Java的非阻塞I/O(NIO),这保证了当Netty服务器使用了相对较少的线程来处理请求的高性能。Avro Source允许用户配置线程的最大数量,但实际线程受JVM、操作系统、硬件等的限制。

Keystore是用Java标准定义的加密密钥和证书的集合,每隔keystore受可以用来加载keystore的密码保护。在Flume实例中,密码以纯文本存储在Flume配置文件中,配置文件必须以恰当的权限来保护,以避免密码落入他人手中。

使用的加密算法通过Java安全属性文件里的ssl.KeyManagerFactory.algorithm定义,如果Java文件中这个参数没有设置,就会使用SunX509算法。【Java安全指南】

Avro Sink和Flume RPC客户端可以配置用于发送数据给Avro Source之前压缩数据,如果数据在广域网或数据中心之间的传输时,这个非常有用的,能够减少使用的宽带。目前Avro Source仅对RPC支持zlib压缩,为了使Avro Source能以压缩的形式接收数据,需要将compression-type参数设置为deflate。如果这个参数没有设置或者设置为none,Flume将不会解压数据,这可能导致事件积压在前一阶段(因为Source讲不能解析压缩数据,会给前一段返回错误,将导致该阶段一直重试)

如果compression-type参数设置为deflate,那么传入的数据必须被压缩,否则Source不能解析传入的数据。所以,Sink或Flume客户端必须配置为压缩将要发送的数据。因此,如果压缩和为压缩的数据被传输到相同的Flume Agent时,agent应该能运行两种Avro Source:一种用来接收压缩的数据,另一种用来接收未压缩的数据。

当Avro Sink或Flume RPC客户端发送数据到Avro Source时,数据是分批被压缩的,而不是按照每个事件,因此这可能会提供更好的压缩率,减少压缩内存的使用情况。

ipFilter.rul

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值