不知道各位用过flume的读者对这两个概念是否熟悉了解
一开始本人的确有点迷惑,觉得这是不是重复了啊?
没感觉到transactionCapacity的作用啊?
batchSize又是干啥的啊?
……
……
带着这些问题,我们深入源码来看一下:
batchSize
batchSize这个概念首先它出现在哪里呢?
kafkaSink的process方法
HDFS Sink...
分类:
Web程序 时间:
2015-03-12 17:17:17
阅读次数:
11871
这里以按自定义头部的配置为例(根据某些业务不同写入不同的主目录)配置:source:interceptors=i1
interceptors.i1.type=regex_extractor
interceptors.i1.regex=/apps/logs/(.*?)/
interceptors.i1.serializers=s1
interceptors.i1.serializers.s1.name=logtypenamesink:hdfs..
分类:
其他好文 时间:
2015-03-12 08:34:37
阅读次数:
1480
在1.5.0的flume版本中开始提供这个功能,判断配置文件的更新时间戳来reload服务原理:1)在启动中使用EventBus.register注册Application对象,同时Application有一个Subscribe的方法handleConfigurationEvent(参数是MaterializedConfiguration对象)2)定义了一个计划任务线程..
分类:
Web程序 时间:
2015-03-12 01:06:34
阅读次数:
245
RegexExtractorInterceptor作为一个Interceptor实现类可以根据一个正则表达式匹配eventbody来提取字符串,并使用serializers把字符串作为header的值实例:以如下的命令使用execsource收集日志的时候,可以根据文件的名称设置不同的header,进行不同的操作#!/bin/sh
filename=$1..
分类:
其他好文 时间:
2015-03-12 01:04:37
阅读次数:
157
1.启动命令nohupbin/flume-ngagent-nagent-server-fagent-server1.conf&flume-ng是一个shell脚本:agentrunaFlumeagent--->org.apache.flume.node.Application类
avro-clientrunanavroFlumeclient--->org.apache.flume.client.avro.AvroCLIClient类run_flume(){#shel..
分类:
Web程序 时间:
2015-03-12 01:04:27
阅读次数:
322
flume可以监控并管理组件的运行状态,在组件关闭的时候可以自动拉起来,原理是通过启动一个计划任务线程池(monitorService,线程的最大数量为30),运行监控线程(MonitorRunnable线程),每隔3s判断组件(包括Channel,SinkRunner)的状态是否符合要求(可用的状态由两种START和..
分类:
Web程序 时间:
2015-03-12 01:04:09
阅读次数:
2319
首先你需要了解JAVA KEYSTORE该SSL用于Avro Sink到Avro Source之间的数据传输
该场景主要用于分布式Flume之间的数据传输,从分散的各个flume agent到中心汇集节点的flume agent下面来看下如何实现的?Avro Sink SSL在这个传输过程中,sink其实就相当于socket的client端了
flume源码中有个类NettyAvroRpcCli...
分类:
Web程序 时间:
2015-03-10 12:09:08
阅读次数:
533
从官方下载的flume-ng的源码里有单元测试的代码,本文就通过单元测试来体验下flume中avro的性能如何
本文中的一个event的body内容大小是1KB,读者可自行组织文本,达到1KB即可,方便测试时,性能的计算
for (int i = 0; i < client.getBatchSize(); i++) {
Event event = channel.take()...
分类:
Web程序 时间:
2015-03-09 16:16:56
阅读次数:
5816
org.apache.flume.channel.ChannelProcessor用于实际的Event到Channel的操作(在Source中用到),可以把它想象成channel的proxy,用于控制把Eventput到哪些Channel中,以及怎么put(bacth或者单个),同时在put之前会使用Interceptor对Event进行处理。把Eventput到哪些Channel中..
分类:
其他好文 时间:
2015-03-09 01:48:39
阅读次数:
176
在agent启动时,会启动Channel,SourceRunner,SinkRunner,比如在org.apache.flume.agent.embedded.EmbeddedAgent类的doStart方法中:privatevoiddoStart(){
booleanerror=true;
try{
channel.start();//调用Channel.start启动Channel
sinkRunner.start();//调用SinkRunner.star..
分类:
其他好文 时间:
2015-03-08 17:24:39
阅读次数:
521