声明: 根据官方文档选择性的翻译了下,不对请指正 https://flume.apache.org/FlumeUserGuide.html

aaarticlea/png;base64,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" alt="" name="en-media:image/png:e6a6997ee4f65eae8b7005da3baef737:none:none" />
术语介绍
组件 说明
Agent 一个flume的jvm实例
Client 消息生产者
Source 从client接收数据,传递给channel
Sink 从channel接收数据发送到目的端
Channel 是source和sink的桥梁,类似队列
Events 可以是日志记录、 avro 对象等
启动方法:
$ bin/flume-ng agent -n $agent_name -c conf -f conf/flume-conf.properties.template
 
配置文件示例:
# example.conf: A single-node Flume configuration

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1 # Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444 # Describe the sink
a1.sinks.k1.type = logger # 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
 
启动:
$ bin/flume-ng agent --conf conf --conf-file example.conf --name a1 -Dflume.root.logger=INFO,console
生产环境配置 --conf=conf_dir,那么conf_dir目录中应该有下面两个文件
  • flume-env.sh
  • log4j.properties
 
记录日志方便debug, 给java传参数
-Dorg.apache.flume.log.printconfig=true
或者在flume-env.sh里设置JAVA_OPTS=-Dorg.apache.flume.log.printconfig=true  日志级别应设置 debug或trace
$ bin/flume-ng agent --conf conf --conf-file example.conf --name a1 -Dflume.root.logger=DEBUG,console -Dorg.apache.flume.log.printconfig=true -Dorg.apache.flume.log.rawdata=true
 
flume也支持配置放在zookeeper中(实验性质)
 
第三方插件
flume-env.sh   配置FLUME_CLASSPATH  或者 放在plugins.d
 
多agent模式之间必须使用avro类型
flume还支持多路复用,即一份数据可以复制多份传给多个sink

配置文件
注意: 一个source可以有多个channle, 但是一个sink只能有一个channle,如下所示
# list the sources, sinks and channels for the agent
<Agent>.sources = <Source>
<Agent>.sinks = <Sink>
<Agent>.channels = <Channel1> <Channel2> # set channel for source
<Agent>.sources.<Source>.channels = <Channel1> <Channel2> ... # set channel for sink
<Agent>.sinks.<Sink>.channel = <Channel1>

  

有两种模式可以支持扇出:  复制技术和 多路技术
  • 复制: event发送给所有的channel
  • 多路: 选择性的发送给channel
 
如果要使用多路技术,需要单独定义一个selector
<Agent>.sources.<Source1>.selector.type = replicating  这是默认的replicating
 
下面是多路的定义方法:
# Mapping for multiplexing selector
<Agent>.sources.<Source1>.selector.type = multiplexing
<Agent>.sources.<Source1>.selector.header = <someHeader>
<Agent>.sources.<Source1>.selector.mapping.<Value1> = <Channel1>
<Agent>.sources.<Source1>.selector.mapping.<Value2> = <Channel1> <Channel2>
<Agent>.sources.<Source1>.selector.mapping.<Value3> = <Channel2>
#... <Agent>.sources.<Source1>.selector.default = <Channel2> 定义一个默认值 如果什么都不匹配则使用这个default
 
来个具体例子:
# list the sources, sinks and channels in the agent
agent_foo.sources = avro-AppSrv-source1
agent_foo.sinks = hdfs-Cluster1-sink1 avro-forward-sink2
agent_foo.channels = mem-channel-1 file-channel-2 # set channels for source
agent_foo.sources.avro-AppSrv-source1.channels = mem-channel-1 file-channel-2 # set channel for sinks
agent_foo.sinks.hdfs-Cluster1-sink1.channel = mem-channel-1
agent_foo.sinks.avro-forward-sink2.channel = file-channel-2 # channel selector configuration
agent_foo.sources.avro-AppSrv-source1.selector.type = multiplexing
agent_foo.sources.avro-AppSrv-source1.selector.header = State
agent_foo.sources.avro-AppSrv-source1.selector.mapping.CA = mem-channel-1
agent_foo.sources.avro-AppSrv-source1.selector.mapping.AZ = file-channel-2
agent_foo.sources.avro-AppSrv-source1.selector.mapping.NY = mem-channel-1 file-channel-2
agent_foo.sources.avro-AppSrv-source1.selector.default = mem-channel-1 还有一个optional的例子
agent_foo.sources.avro-AppSrv-source1.selector.optional.CA = mem-channel-1 file-channel-2

  

当所有的channel都消费完成,selector会尝试往optional也写一份, optional channel写入失败会忽略错误不会重试
 
如何header配置的channel既是required又是optional的 那么这个channel被认为是required, 任何一个channel失败都会导致整个channel集合失败,就像上面的CA,任何一个channel失败都认为 CA失败了
如果一个header没有设置任何channel,那么event会写到default channel,也会往optional写一份. 既是指定了写入optional channel但仍然会往default写. 如果连default也没指定那么event只能写optional channel,写入失败也只是简单的忽略.

Flume source
  1. avro source
    下面是配置参数,粗体是必选
Property Name Default Description
channels  
type The component type name, needs to be avro
bind hostname or IP address to listen on
port Port # to bind to
threads Maximum number of worker threads to spawn
selector.type    
selector.*    
interceptors Space-separated list of interceptors
interceptors.*    
compression-type none This can be “none” or “deflate”. The compression-type must match the compression-type of matching AvroSource
ssl false Set this to true to enable SSL encryption. You must also specify a “keystore” and a “keystore-password”.
keystore This is the path to a Java keystore file. Required for SSL.
keystore-password The password for the Java keystore. Required for SSL.
keystore-type JKS The type of the Java keystore. This can be “JKS” or “PKCS12”.
exclude-protocols SSLv3 Space-separated list of SSL/TLS protocols to exclude. SSLv3 will always be excluded in addition to the protocols specified.
ipFilter false Set this to true to enable ipFiltering for netty
ipFilterRules Define N netty ipFilter pattern rules with this config.
 
ipFilterRules例子如下:
allow:name:localhost,deny:ip:
ipFilterRules=allow:ip:127.*,allow:name:localhost,deny:ip:*    允许本机,禁止其他ip allow:name:localhost,deny:ip:
deny:name:localhost,allow:ip:   禁止本机,允许其他
 
  1. Thrift source
    Thrift source通过kerberos可以配置加密模式
    需要设置这两个参数: agent-principal   agent-keytab
  2. Exec source ( 不推荐使用)
    运行unix命令输出到标准输出(如果没有配置logStdErr=true那么错误会被抛弃)
… 太多source了  有兴趣的自己看吧

Flume sinks
支持的sink也很多这里只列举一下吧
    • HDFS
    • HIVE
    • Logger 日志级别是INFO, 这个sink大都用来测试和调试
    • Avro
    • Thrift 也支持kerberos加密
    • IRC
    • File Roll
    • Null  丢弃收到的消息
    • HBase
    • AsyncHBase  异步模式
    • MorphlineSolr
    • ElasticSearch
    • Kite Dataset
    • Kafka

Flume channel
channel就是在agent端存储event的, source发送过来event,sink去消费
支持的channel如下
    • memory
    • JDBC  用户持久化存储到数据库, 支持内置的Derby
    • Kafka
    • File
    • Spillable memory
      大体解释下这个channel, 有一个内存的队列和一个文件的channle组成,数据先在queue中存,存不下了就往file channle写,这个channel的想法是在正常情况下的高吞吐就是内存的队列, file channel就是应对突然来了很大的数据量或者agent突然挂了,那么数据还能从file恢复
      重点来了: 实验性质,不推荐在生产环境使用
    • Pseudo Transaction  用来做单元测试,不推荐生产环境

Flume channle selector
前面说过了,默认的selector是复制模式,而不是多路模式
来一个多路模式的配置文件
a1.sources = r1
a1.channels = c1 c2 c3 c4
a1.sources.r1.selector.type = multiplexing 这里注意
a1.sources.r1.selector.header = state
a1.sources.r1.selector.mapping.CZ = c1
a1.sources.r1.selector.mapping.US = c2 c3
a1.sources.r1.selector.default = c4

  


Flume sink processors
可以给sink分组,实现负载均衡或者容错
Property Name Default Description
sinks Space-separated list of sinks that are participating in the group
processor.type default The component type name, needs to be default, failover or load_balance
Example for agent named a1:
 
a1.sinkgroups = g1
a1.sinkgroups.g1.sinks = k1 k2
a1.sinkgroups.g1.processor.type = load_balance
 
有三种类型的processor: default, failover, load_balance
 
    1. 这篇文档中配置的source-channel-sink就是default模式,什么都不用配置
    2. failover
      给多个sink配置优先级,保证至少有一个sink是可用的,优先级的数字越大优先级越高
      这些sink被放到一个池子pool里,发送event失败的sink会被暂时移除pool,并被冷却30s(默认),后续的event由次高优先级的sink处理,如果没有设置优先级那么按照配置文件中的次序
    3. load balance
      有两个负载均衡的策略: 轮训(round_robin默认), 随机(random)
      如果有一个sink发送失败,processor会选择下一个sink,如果你没有设置backoff,它也不会被从可用sink中移除,如果所有的sink都失败了,那么这个信息就传递给调用者

Event serializer
file_roll和hdfs sink都支持eventSerializer
    1. Body text serializer
      就是普通的文本,event的header会被忽略
    2. "Flume event" Avro Event serializer
    3. Avro event serializer

Flume interceptor
flume可以使用拦截器修改和丢弃event,支持链式拦截器,多个拦截器用空格分隔
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.interceptors = i1 i2
a1.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.HostInterceptor$Builder
a1.sources.r1.interceptors.i1.preserveExisting = false
a1.sources.r1.interceptors.i1.hostHeader = hostname
a1.sources.r1.interceptors.i2.type = org.apache.flume.interceptor.TimestampInterceptor$Builder
a1.sinks.k1.filePrefix = FlumeData.%{CollectorHost}.%Y-%m-%d
a1.sinks.k1.channel = c1 
  1. Timestamp   在header中添加一个timestamp的key 显示处理event的时间
  2. Host  在header中添加host     保存agent的ip地址
  3. Static 用户可以自定义一个key,一次只能添加一个key,如果要添加多个可以使用多个interceptor拦截器
  4. UUID  生成一个128位的值
  5. Morphline
  6. search and replace  基于java的正则表达式   java matcher.replaceAll
  7. regex filter
  8. regex extractor 把正则分组中的匹配放到header中

flume properties
flume.called.from.service 每30s flume会重新载入配置文件.
如果你这是了这个参数 -Dflume.called.from.service
当agent第一次读取配置文件并且这个文件不存在时,恰巧你设置了上面的参数,那么agent不会报错,并会继续等待30s重载配置文件
如果你没设置上面的参数,那么agent立即退出
当agent到了30s重载配置文件, 而这不是第一次载入这个文件,那么agent不会退出,而是认为配置文件没有变化继续使用旧的配置

Json Reporting
flume可以启动一个内置的http server以json的形式报告各种指标
$ bin/flume-ng agent --conf-file example.conf --name a1 -Dflume.monitoring.type=http -Dflume.monitoring.port=34545
 

Apache Flume入门指南[翻译自官方文档]的更多相关文章

  1. 为开源社区尽一份力,翻译RocketMQ官方文档

    正如在上一篇文章中写道:"据我所知,现在RocketMQ还没有中文文档.我打算自己试着在github上开一个项目,自行翻译."我这几天抽空翻译了文档的前3个小节,发现翻译真的不是一 ...

  2. [翻译]Android官方文档 - 通知(Notifications)

    翻译的好辛苦,有些地方也不太理解什么意思,如果有误,还请大神指正. 官方文档地址:http://developer.android.com/guide/topics/ui/notifiers/noti ...

  3. 自己翻译 delegation 官方文档

    什么是代理,知道怎么用,见过N次.会用代理传值,还不够.代理到底是用来干嘛的嘛?还是看看官方文档吧,自己翻译出来看看是不是通顺 代理: 代理是一个简单高效的模式,尤其是一个类在编程的过程中代表或者需要 ...

  4. [翻译]PyMongo官方文档

    PyMongo官方文档翻译 周煦辰 2016-06-30 这是本人翻译的PyMongo官方文档.现在网上分(抄)享(袭)的PyMongo博客文章很多,一方面这些文章本就是抄袭的,谈不上什么格式美观,另 ...

  5. 我为什么要翻译ES6官方文档

    ES6出来很久了,现在网上也有很多教程,其中以阮一峰老师的教程最为经典.大家通过学习阮老师的教程肯定能学懂ES6最新的技术. ES6官方文档是一个规范,各浏览器在实现ES6的具体API时都会遵循它.我 ...

  6. 入门常用SQL及官方文档的使用

    SQL语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作关系型数据库. 5大主要类型: ①DQL(Data Query Language,数据查询语言)语句,主要由于se ...

  7. Qt元类型(MetaType)注册入门(附一些官方文档的关键摘录)

    昨天调试项目时,突然发现如下消息: QObject::connect: Cannot queue arguments of type 'ERROR_LEVEL' (Make sure 'ERROR_L ...

  8. 使用MySQL Yum存储库的快速指南【mysql官方文档】

    使用MySQL Yum存储库的快速指南 抽象 MySQL Yum存储库提供用于在Linux平台上安装MySQL服务器,客户端和其他组件的RPM包.这些软件包还可以升级和替换从Linux发行版本机软件存 ...

  9. Android Support Library 23.2介绍(翻译自官方文档)

    Android Support Library 23.2 (译者注:本文标注了部分文字链接,但须要***,要查看全部链接.请查看sukey=014c68f407f2d3e181b6b5e665f26a ...

随机推荐

  1. springmvc 数据验证 hibernate-validator --->对象验证

    数据验证步骤: 1.测试环境的搭建: 2.验证器的注册 在springmvc.xml配置文件中加以下代码: 3.验证注解添加到对应实体类上 4.修改处理器 5.将验证失败信息写入到表单 index.j ...

  2. 前端开发之jQuery属性和文档操作

    主要内容: 1.jQuery属性操作 2.jQuery文档操作 一.jQuery属性操作 1.什么是jQuery的属性操作? jQuery的属性操作模块包括四个部分:html属性操作,dom属性操作, ...

  3. centos7虚拟机安装elasticsearch6.4.x-遇到的坑

    OS:Centos7x虚拟机 1H2Gjdk:1.8elasticsearch:5.6.0 1.下载“elasticsearch-5.6.0.tar.gz”解压到/usr/local/elastics ...

  4. 记录GOPATH在GOLAND中的坑

    首先我的环境已配置好: GO的目录结构是: add.go package calc//函数名必须大写首字母,不然外部包找不到 func Add(a int,b int)(int){ return a+ ...

  5. Python爬虫进阶一之爬虫框架概述

    综述 爬虫入门之后,我们有两条路可以走. 一个是继续深入学习,以及关于设计模式的一些知识,强化Python相关知识,自己动手造轮子,继续为自己的爬虫增加分布式,多线程等功能扩展.另一条路便是学习一些优 ...

  6. js的prototype(2)

    1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A. 2 javasc ...

  7. centos7 redis伪集群安装

    安装gcc: yum install gcc -y   上传redis软件包到 /home下   解压: tar xf redis-3.2.11.tar.gz   进入 redis 目录 : cd r ...

  8. Android Studio真机测试

    本页内容 1.真机测试好处多 2.开始吧!真机测试 1.真机测试好处多 不久前才开我的Android Studio之旅,就遇上了一个大麻烦——创建的模拟器各种运行出错.尝试了各种解决方法,都没有什么结 ...

  9. Nginx搭建后,图片存储在Tomcat上,前端无法回显图片问题

    一.Nginx与Tomcat连接搭建的环境,Nginx设置了前端的访问路径为 (1)前端代码配置: root /usr/local/nginx/html; index index.html index ...

  10. Redis数据结构(六)

    Redis数据结构(Sort-set)(游戏排名和微博热点话题排名上应用): 特点:可存储有序但不重复的数据,根据分数指定存储顺序 1 Sort-set和Set的区别: (1)sort的每个成员都是以 ...