以前很多业务都是用scribe做日志收集的支撑的,后来fb停止了对scribe的开发支持。而且scribe在机器上编译一次的代价太大了,各种坑,正好后来flume从1.3.0开始加入了对scribe的支持。就可以把原来scribe上面接入的数据转用flume收集了。虽然我很喜欢scribe,但是失去了官方支持毕竟还是很闹心的。

agent.channels=c1
agent.channels.c1.capacity=20000
agent.channels.c1.transactionCapacity=10000
agent.channels.c1.type=memory
agent.sinks=k1
agent.sinks.k1.channel=c1
agent.sinks.k1.hdfs.batchSize=8000
agent.sinks.k1.hdfs.filePrefix=log
agent.sinks.k1.hdfs.fileType=DataStream
agent.sinks.k1.hdfs.path=hdfs://NNHA/data/flume/%{category}/%Y%m%d
agent.sinks.k1.hdfs.rollCount=0
agent.sinks.k1.hdfs.rollInterval=86400
agent.sinks.k1.hdfs.round=true
agent.sinks.k1.hdfs.roundUnit=minute
agent.sinks.k1.hdfs.roundValue=1
agent.sinks.k1.hdfs.serializer.appendNewline=false
agent.sinks.k1.hdfs.useLocalTimeStamp=true
agent.sinks.k1.hdfs.writeFormat=TEXT
agent.sinks.k1.type=hdfs
agent.sources=r1
agent.sources.r1.channels=c1
agent.sources.r1.host=0.0.0.0
agent.sources.r1.port=1463
agent.sources.r1.type=org.apache.flume.source.scribe.ScribeSource
agent.sources.r1.workerThreads=5

 

主要是serializer.appendNewline设置为false,否则会每条自动添加一个回车上去,其他也没什么太多好解释的,用过flume的自然秒懂,hdfs.path里面,%{category}就是意味着原来scribe里面的category。

flume 1.6的新特性里面是加入了对kafka的source和sink的支持,以及对数据内容的正则过滤传递,这点很有用,貌似下个月或者下下个月会有本关于flume的新书上市。

发表回复

*
*

Time limit exceeded. Please complete the captcha once again.

Required fields are marked *