zoukankan      html  css  js  c++  java
  • flume1.8 Sinks类型介绍(三)

    1. Flume Sinks

    1.1 HDFS Sink

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

    agent a1的示例:

    上述配置会将时间戳降到最后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查询到。

    Hive table 示例:

    agent a1示例:

     上述配置将会把时间戳降到最后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 水平。典型用法是测试或者调试。

     agent a1 示例:

    1.4 Avro Sink

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

    agent a1示例:

    1.5 Thrift Sink

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

    agent a1示例:

    1.5 IRC Sink

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

    agent a1示例:

    1.6 File Roll Sink

    在本地文件系统存储events。

    agent a1示例:

    1.7 Null Sink

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

    agent a1示例:

    1.7 HBaseSinks

    1.7.1 HBaseSink

    该sink写数据到HBase。

    agent a1 示例:

    1.7.2 AsyncHBaseSink

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

    agent a1示例:

    1.8 MorphlineSolrSink

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

     

    agent a1示例:

    1.9 ElasticSearchSink

    该sink写数据到elasticsearch集群。

    agent a1示例:

    1.10 Kite Dataset Sink

     试验sink写event到Kite Dataset。

    1.11 Kafka Sink

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

     

    Kafka sink配置例子:

    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:

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

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

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

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

    Kerberos and Kafka Sink:

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

    使用SASL_PLAINTEST的安全配置示例:

    使用SASL_SSL的安全配置示例:

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

     1.12 HTTP Sink

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

    agent a1示例:

    1.13 Custom Sink(自定义Sink)

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

    agent a1 示例:

    2. Flume Sink Processors

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

    agent a1的示例:

    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将会被处理。

    agent a1的示例:

    2.3 Load balancing Sink Processor

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

    agent a1示例:

    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被忽略。配置选项:

    agent a1的示例:

    3.2 "Flume Event" Avro Event Serializer

    别名:avro_event。

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

    该serializer继承自AbstractAvroEventSerializer类。

    agent a1示例:

    3.3 Avro Event Serializer

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

    agent a1示例:

     参考资料:

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

  • 相关阅读:
    【python cookbook】找出序列中出现次数最多的元素
    2018/1/21 Netty通过解码处理器和编码处理器来发送接收POJO,Zookeeper深入学习
    读《风雨20年》小感
    两个知识点的回顾(const指针和动态链接库函数dlopen)
    小试牛刀
    chmod,chown和chgrp的区别
    node.js中使用node-schedule实现定时任务
    在 Node.js 上调用 WCF Web 服务
    nodejs发起HTTPS请求并获取数据
    openstack 之~云计算介绍
  • 原文地址:https://www.cnblogs.com/swordfall/p/8157766.html
Copyright © 2011-2022 走看看