Flume(3)flume1.8 Sinks类型介绍

Flume(3)flume1.8 Sinks类型介绍1 FlumeSinks1 1HDFSSink 该 sink 把 events 写进 Hadoop 分布式文件系统 HDFS 它目前支持创建文本和序列文件 它支持在两种文件类型压缩 文件可以基于数据的经过时间或者大小或者事件的数量周期性地滚动 它还通过属性 如时间戳或发生事件的机器 把数据划分为桶或区 agenta1 的示例 上述配置会将时间戳降到最后 10 分钟 例如 带有 11 54 34

1. Flume Sinks

1.1 HDFS Sink

该sink把events写进Hadoop分布式文件系统(HDFS)。它目前支持创建文本和序列文件。它支持在两种文件类型压缩。文件可以基于数据的经过时间或者大小或者事件的数量周期性地滚动。它还通过属性(如时间戳或发生事件的机器)把数据划分为桶或区。

img

img

agent a1的示例:

img

上述配置会将时间戳降到最后10分钟。例如,带有11:54:34 AM,June 12,2012时间戳的event将会造成hdfs路径变成/flume/events/2012-06-12/1150/00。

1.2 Hive Sink

该sink streams 将包含分割文本或者JSON数据的events直接传送到Hive表或分区中。使用Hive 事务写events。当一系列events提交到Hive时,它们马上可以被Hive查询到。

img

img

Hive table 示例:

img

agent a1示例:

img

上述配置将会把时间戳降到最后10分钟。例如,event时间戳 header设置为 11:54:34 AM, June 12,2012 ,和 ‘country’ header 设置 为 ‘india’ , 该event评估到partition(continent=‘asia’, country=‘india’, time=‘2012-06-12-11-50’)。

1.3 Logger Sink

Logs event 在INFO 水平。典型用法是测试或者调试。

img

agent a1 示例:

img

1.4 Avro Sink

Flume events发送到sink,转换为Avro events,并发送到配置好的hostname/port。从配置好的channel按照配置好的批量大小批量获取events。

img

img

agent a1示例:

img

1.5 Thrift Sink

Flume events发送到sink,转换为Thrift events,并发送到配置好的hostname/port。从配置好的channel按照配置好的批量大小批量获取events。

img

agent a1示例:

img

1.5 IRC Sink

IRC sink从链接的channel获取消息和推送消息到配置的IRC目的地。

img

agent a1示例:

img

1.6 File Roll Sink

在本地文件系统存储events。

img

img

agent a1示例:

img

1.7 Null Sink

当接收到channel时丢弃所有events。

img

agent a1示例:

img

1.7 HBaseSinks

1.7.1 HBaseSink

该sink写数据到HBase。

img

agent a1 示例:

img

1.7.2 AsyncHBaseSink

该sink采用异步模式写数据到HBase。

img

agent a1示例:

img

1.8 MorphlineSolrSink

该sink从Flume events提取数据并转换,在Apache Solr 服务端实时加载,Apache Solr servers为最终用户或者搜索应用程序提供查询服务。

img

img

agent a1示例:

img

1.9 ElasticSearchSink

该sink写数据到elasticsearch集群。

img

img

agent a1示例:

img

1.10 Kite Dataset Sink

试验sink写event到Kite Dataset。

img

1.11 Kafka Sink

Flume Sink实现可以导出数据到一个Kafka topic。

img

Kafka sink配置例子:

img

1.11.1 Security and Kafka Sink

Flume和Kafka之间的联系channel支持安全认证和数据加密。

安全认证SASL/GSSAPI(Kerberos V5) 或者 SSL(TLS实现) 可以被用于Kafka 版本 0.9.0 。

数据加密由SSL/TLS提供。

设置kafka.producer.security.protocol为下面值:

  • SASL_PLAINTEXT – Kerberos or plaintext authentication with no data encryption
  • SASL_SSL – Kerberos or plaintext authentication with data encryption
  • SSL – TLS based encryption with optional authentication.
TLS 和 Kafka Sink:

带有服务端认证和数据加密配置的例子:

img

注意:属性ssl.endpoint.identification.algorithm没有定义,因此没有hostname验证,为了是hostname验证,可以设置属性:

img

如果要求有客户端认证,在Flume agent配置中添加下述配置。每个Flume agent必须有它的客户端凭证,以便被Kafka brokers信任。

img

如果keystore和key使用不用的密码保护,那么ssl.key.password属性需要提供出来:

img

Kerberos and Kafka Sink:

kerberos配置文件可以在flume-env.sh通过JAVA_OPTS指定:

img

使用SASL_PLAINTEST的安全配置示例:

img

使用SASL_SSL的安全配置示例:

img

JAAS文件实例(暂时没看懂):

img

1.12 HTTP Sink

该sink将会从channel获取events,并使用HTTP POST请求发送这些events到远程服务。event 内容作为POST body发送。

img

agent a1示例:

img

1.13 Custom Sink(自定义Sink)

自定义sink是你实现Sink接口。当启动Flume agent时,一个自定义sink类和它依赖项必须在agent的classpath中。

img

agent a1 示例:

img

2. Flume Sink Processors

Sinks groups 允许用户把多个sinks分组汇入到一个实体中。Sink processors可以用于在组内所有sinks提供负载平衡,或者在暂时失败的情况下实现从一个sink到另一个sink的故障转移。

img

agent a1的示例:

img

2.1 Default Sink Processor

默认sink processor只接收一个简单sink。用户没有强制去为单个sinks创建processor(sink group)。相反,用户可以按照用户指南上解释的source – channel – sink 模式。

2.2 Failover Sink Processor

Failover Sink Processor 维护sinks的优先列表,保证当有可用的events将会被处理。

img

agent a1的示例:

img

2.3 Load balancing Sink Processor

Load balancing sink processor 提供了对多个sinks进行负载平衡的能力。

img

agent a1示例:

img

2.4 Custom Sink Processor

现在不支持自定义sink processors。

3. Event Serializers

file_roll sink和hdfs sink都支持EventSerializer接口。下面提供了Flume附带的EventSerializers的细节。

3.1 Body Text Serializer

别号:text。拦截器将event的主体写入输出流,而没进行任何的转换或者修改。event header被忽略。配置选项:

img

agent a1的示例:

img

3.2 “Flume Event” Avro Event Serializer

别名:avro_event。

拦截器将Flume events序列化成一个Avro容器文件。所使用的模式与Avro RPC机制中用于Flume events的模式相同。

该serializer继承自AbstractAvroEventSerializer类。

img

agent a1示例:

img

3.3 Avro Event Serializer

别名:该serializer没有别名,必须指定使用的类名。

img

agent a1示例:

img

参考资料:

https://flume.apache.org/FlumeUserGuide.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229560.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午4:26
下一篇 2026年3月16日 下午4:26


相关推荐

  • 树莓派安装pycharm

    树莓派安装pycharm一 点击此链接点击 Tools 点击 PyCharm 点击 Download 点击 Linux 下载 Community 版本二 U 盘拷贝至树莓派 home pi 文件夹下三 输入命令 lspycharm community 2020 2 4 targz 找到文件四 输入命令 tar xvzfpycharm community202 2 4 tar gz C 进行解压即可安装在 home 目录中

    2026年3月26日
    2
  • ajax使用案例

    ajax使用案例1、初步了解这里可以修改网络快和慢。限网,流量式的,做模拟的。network->all代表加载的所有事件后面的那个显示有/,这个是首路由。后面有很多svg和js等文件想要这个服务器的地址

    2022年7月2日
    25
  • debian9.5安装教程_debian11安装教程

    debian9.5安装教程_debian11安装教程IPSET是Linux内核中用来建立、维护和查看IP集合的工具,常常与iptables配合使用。在Debian-5.0.3下安装ipsetv2.3.3,遇到了一些问题,最终安装成功。将安装过程及遇到的问题和大家分享。 1安装环境Debian-5.0.3,安装过程中选择内核为2.6.26-2-486。 2用Debian的包管理器aptitude安装ipset安装完成以后

    2026年4月14日
    5
  • Linux查看防火墙状态及开启关闭命令

    Linux查看防火墙状态及开启关闭命令Linux 查看防火墙状态及开启关闭命令 CentOS7CentO 安装 UFW 防火墙启用开启 禁用打开或关闭某个端口 例如 查看防火墙状态 UFW 使用范例 CentOS7CentO 的防火墙配置跟以前版本有很大区别 CentOS7 这个版本的防火墙默认使用的是 firewall 与之前的版本使用 iptables 不一样关闭防火墙 systemctlsto service 开启防火墙 systemctlsta servic

    2026年3月19日
    2
  • Unix常用命令

    Unix常用命令moreless:less的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less允许使用者往回卷动以浏览已经看过的部份,同时因为less并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如vi)来的快速。unix种类[图]>>Linux‖BSD‖Solaris‖SCO‖HP-UX‖AIX‖AS4

    2022年5月31日
    42
  • 完整的vue开发环境搭建教程

    完整的vue开发环境搭建教程一 安装 node js https nodejs org en 下载完毕后 可以安装 node 建议不要安装在系统盘 如 C 输出版本号则安装成功 node v 输出版本号则安装成功二 设置 nodejsprefix 全局 和 cache 缓存 路径查看 npm 安装目录 npmroot g 查看 npm 的 prefix 和 cache 路径配置信息 npmconfigget 修改全局和缓存路径 1 先在设置路径目录

    2026年3月26日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号