flume
文章平均质量分 82
奔跑-起点
这个作者很懒,什么都没留下…
展开
-
Fluentd (td-agent) 日志收集系统
Fluentd是一个日志收集系统,它的特点在于其各部分均是可定制化的,你可以通过简单的配置,将日志收集到不同的地方。目前开源社区已经贡献了下面一些存储插件:MongoDB, Redis, CouchDB,AmazonS3, Amazon SQS, Scribe, 0MQ, AMQP, Delayed, Growl等等。安装可参考http://docs原创 2016-11-24 12:14:17 · 13141 阅读 · 0 评论 -
OLAP引擎——Kylin介绍
Kylin是ebay开发的一套OLAP系统,与Mondrian不同的是,它是一个MOLAP系统,主要用于支持大数据生态圈的数据分析业务,它主要是通过预计算的方式将用户设定的多维立方体缓存到HBase中(目前还仅支持hbase),这段时间对mondrian和kylin都进行了使用,发现这两个系统是时间和空间的一个权衡吧,mondrian是一个ROLAP系统,所有的查询可以通过实时的数据库查询完成,而转载 2016-12-09 22:23:40 · 612 阅读 · 0 评论 -
flume学习(十):如何使用Spooling Directory Source
最近在弄一个银行数据汇聚的事情,主要目的是把FTP上的数据汇聚到HDFS上去存储。 逻辑是这样的:把FTP服务器上的文件下载到一台主机上,然后SCP到另外一台主机上的Spooling Directory Source所监控的目录下面去,sink是hdfs(这里解释一下,由于网络环境的因素,另一台不能访问到内网的FTP服务器,所以只能这样中转一下)。嗯,想法不错,逻辑上看上去也应该没啥问题,原创 2016-12-09 22:19:55 · 1137 阅读 · 1 评论 -
flume学习(九):使用Morphline Interceptor
Morphline是干嘛用的?简单点说就是一个ETL工具,详细介绍:http://kitesdk.org/docs/current/kite-morphlines/morphlinesReferenceGuide.html这里有一个注意点,是和cloudera search版本有关系的,我是用CDH 5.0.0, Parcel搭建的集群环境,对应装的cloudera search是1.0版转载 2016-12-09 22:18:05 · 1106 阅读 · 0 评论 -
flume学习(八):自定义拦截器
还是针对学习七中的那个需求,我们现在换一种实现方式,采用拦截器来实现。先回想一下,spooldir source可以将文件名作为header中的key:basename写入到event的header当中去。试想一下,如果有一个拦截器可以拦截这个event,然后抽取header中这个key的值,将其拆分成3段,每一段都放入到header中,这样就可以实现那个需求了。遗憾的是,flum原创 2016-12-09 22:07:39 · 835 阅读 · 0 评论 -
flume学习(七):自定义source
按照以往的惯例,还是需求驱动学习,需求是:我想实现一个功能,就在读一个文件的时候,将文件的名字和文件生成的日期作为event的header传到hdfs上时,不同的event存到不同的目录下,如一个文件是a.log.2014-07-25在hdfs上是存到/a/2014-07-25目录下,a.log.2014-07-26存到/a/2014-07-26目录下,就是每个文件对应自己的目录,这个要怎么实原创 2016-12-09 22:01:40 · 1923 阅读 · 0 评论 -
flume学习(六):如何使用event header中的key值
前面我们已经说到我们在header中添加了一个key为:flume.client.log4j.logger.source ,然后有两个应用程序,一个设置为app1,一个设置为app2。现在有这么一个需求,要将app1的日志输出到hdfs://master68:8020/flume/events/app1目录下面,app2的日志输出到hdfs://master68:8020/flume/e原创 2016-12-09 21:53:47 · 3869 阅读 · 0 评论 -
flume学习(五):使用hive来分析flume收集的日志数据
前面已经讲过如何将log4j的日志输出到指定的hdfs目录,我们前面的指定目录为/flume/events。如果想用Hive来分析采集来的日志,我们可以将/flume/events下面的日志数据都load到hive中的表当中去。如果了解hive的load data原理的话,还有一种更简便的方式,可以省去load data这一步,就是直接将sink1.hdfs.path指原创 2016-12-09 21:49:24 · 883 阅读 · 0 评论 -
flume学习(四):Flume Channel Selectors使用
前几篇文章只有一个项目的日志,现在我们考虑多个项目的日志的收集,我拷贝了一份flumedemo项目,重命名为flumedemo2,添加了一个WriteLog2.java类,稍微改动了一下JSON字符串的输出,将以前requestUrl中的"reporter-api"改为了"image-api",以便和WriteLog类的输出稍微区分开来,如下:[java] view plain原创 2016-12-09 21:44:48 · 492 阅读 · 0 评论 -
flume学习(三):Flume Interceptors的使用
官网:http://flume.apache.org/对于flume拦截器,我的理解是:在app(应用程序日志)和 source 之间的,对app日志进行拦截处理的。也即在日志进入到source之前,对日志进行一些包装、清新过滤等等动作。官方上提供的已有的拦截器有:Timestamp InterceptorHost InterceptorStatic原创 2016-12-09 21:40:49 · 739 阅读 · 0 评论 -
flume学习(二):flume将log4j日志数据写入到hdfs
官网: http://flume.apache.org/在第一篇文章中我们是将log4j的日志输出到了agent的日志文件当中。配置文件如下:[plain] view plain copyprint?tier1.sources=source1 tier1.channels=channel1 tier1.sinks=sink1 tie原创 2016-12-09 21:31:09 · 640 阅读 · 0 评论 -
flume学习(一):log4jAppender直接输出日志到flume的avro-source
log4j.properties配置:log4j.rootLogger=INFO,flume,stdoutlog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout=o原创 2016-12-09 21:27:48 · 1073 阅读 · 0 评论 -
cloudera search1.0.0环境搭建(2):利用flume-ng的MorphlineSolrSink实现近实时(NRT)搜索
要实现近实时搜索,就必须有一种机制来实时的处理数据然后生成到solr的索引中去,flume-ng刚好提供了这样一种机制,它可以实时收集数据,然后通过MorphlineSolrSink对数据进行ETL,最后写入到solr的索引中,这样就能在solr搜索引擎中近实时的查询到新进来的数据了。搭建步骤:1 我们这里只做演示效果,所以新建了一个文件file01来保存了两条数据,后面将通过fl转载 2016-12-09 22:27:18 · 736 阅读 · 0 评论