flume写hdfs的操作在HDFSEventSink.process方法中,路径创建由BucketPath完成分析其源码(参考:http://caiguangguang.blog.51cto.com/1652935/1619539)可以使用%{}变量替换的形式实现,只需要获取event中时间字段(nginx日志的localtime)传入hdfs.path即可具体实现如下:1...
分类:
Web程序 时间:
2015-04-19 19:37:36
阅读次数:
156
flume打包遇到的一些问题1.ipc兼容性问题,线上使用2.3.0的hdfs,但是打包时默认为1.2.1的08Apr201519:38:25,122WARN[SinkRunner-PollingRunner-DefaultSinkProcessor](org.apache.flume.sink.hdfs.HDFSEventSink.process:455)-HDFSIOerror
org.apache.hadoop.ipc.RemoteExcept..
分类:
Web程序 时间:
2015-04-19 19:36:26
阅读次数:
256
这里以按自定义头部的配置为例(根据某些业务不同写入不同的主目录)配置: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
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
上一篇说了HDFSEventSink的实现,这里根据hdfssink的配置和调用分析来看下sink中整个hdfs数据写入的过程:线上hdfssink的几个重要设置hdfs.path=hdfs://xxxxx/%{logtypename}/%Y%m%d/%H:
hdfs.rollInterval=60
hdfs.rollSize=0//想让文件只根据实际来roll
hdfs.rollCount=0
hd..
分类:
其他好文 时间:
2015-03-08 01:32:45
阅读次数:
4543
HDFSEventSink用于把数据从channel中拿出来(主动pull的形式)然后放到hdfs中,HDFSEventSink在启动时会启动两个线程池callTimeoutPool和timedRollerPool,callTimeoutPool用于运行append/flush等操作hdfs的task(通过callWithTimeout方法调用,并实现timeout功能),用于运行..
分类:
Web程序 时间:
2015-03-06 06:24:34
阅读次数:
254
Flume架构主要由3个组件,分别是Source,Channel和Sink,3个组件组成Event在Flume中得数据流向或者说流水线,功能可以由Flume的介绍看出:When a Flume source receives an event, it stores it into one or mo...
分类:
Web程序 时间:
2015-02-15 19:21:33
阅读次数:
320