hadoop助力python构建mapreduce日志分析平台

如果将">流量比较大的日志直接写入Hadoop的话,对Namenode无疑会负载过大,因此入库前合并,可以把各个节点的日志凑并成一个文件写入HDFS。

分析下日志的大小,像200G的dns日志文件,压缩到18G,要是用awk perl当然也可以,但是处理速度肯定没有分布式来的那样迅速

Hadoop Streaming原理

mapper和reducer会从标准输入中读取用户数据,一行一行处理后发送给标准输出。Streaming工具会创建MapReduce作业,发送给各个tasktracker,同时监控整个作业的执行过程。

任何语言,只要是方便接收标准输入输出就可以做mapreduce~

再搞之前我们先简单测试下shell模拟mapreduce的性能速度~

看下他的结果,350M的文件用时35秒左右。

这是2G的日志文件,居然用了3分钟。 当然和我写的脚本也有问题,我们是模拟mapreduce的方式,而不是调用shell下牛逼的awk,gawk处理。

awk的速度 !果然很霸道,处理日志的时候,我也很喜欢用awk,只是学习的难度有点大,不像别的shell组件那么灵活简单。

这是官方的提供的两个demo ~

map.py

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #!/usr/bin/env python """A more advanced Mapper, using Python iterators and generators.""" import

时间: 2024-11-10 01:17:46

hadoop助力python构建mapreduce日志分析平台的相关文章

使用python构建基于hadoop的mapreduce日志分析平台

流量比较大的日志要是直接写入Hadoop对Namenode负载过大,所以入库前合并,可以把各个节点的日志凑并成一个文件写入HDFS. 根据情况定期合成,写入到hdfs里面. 咱们看看日志的大小,200G的dns日志文件,我压缩到了18G,要是用awk perl当然也可以,但是处理速度肯定没有分布式那样的给力. Hadoop Streaming原理 mapper和reducer会从标准输入中读取用户数据,一行一行处理后发送给标准输出.Streaming工具会创建MapReduce作业,发送给各个t

使用elk+redis搭建nginx日志分析平台

elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录.其次,需要有个队列,redis的list结构正好可以作为队列使用.然后分析使用elasticsearch就可以进行分析和查询了. 我们需要的是一个分布式的,日志收集和分析系统.logstash有agent和indexer两个角色.对于agent角色,放在单独的web机器上面,

elk+redis 搭建nginx日志分析平台

elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录.其次,需要有个队列,redis的list结构正好可以作为队列使用.然后分析使用elasticsearch就可以进行分析和查询了. 我们需要的是一个分布式的,日志收集和分析系统.logstash有agent和indexer两个角色.对于agent角色,放在单独的web机器上面,

linux下利用elk+redis 搭建日志分析平台教程

这个是最新的elk+redis搭建日志分析平台,今年时间是2015年9月11日. Elk分别为 elasticsearch,logstash, kibana 官网为:https://www.elastic.co/products Elasticsearch: https://www.elastic.co/downloads/elasticsearch https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7

[文档]基于Hadoop/Hive的web日志分析系统的设计

基于Hadoop/Hive的web日志分析系统的设计 刘永增,张晓景,李先毅 利用Hadoop.Hive设计了一个用于处理web日志分析的系统,既充分利用了Hadoop的海量数据处理的能力,又降低了开发的难度.通过与单机实验的对比,证明系统是有效的和有价值的. 关键词:web日志:云计算:Hadoop:Hive [下载地址]http://bbs.chinacloud.cn/showtopic-12968.aspx

360收购不到一岁的基于SaaS模式在线网站日志分析平台“日志宝”

冯大辉的http://www.aliyun.com/zixun/aggregation/32631.html">小道消息今日透露,360已经完成了对"日志宝"的收购.日志宝创始人兼CEO董方向我们证实了该消息,并表示此次收购是基于业务和资源的整合,但未透露具体收购细节,只是说收购形式为"股票+现金". 日志宝是一个基于SaaS模式的在线网站日志分析平台,专注于提供网站Web访问日志分析服务,目前兼容NCSA和W3C日志格式,于2012年5月7日正式上

ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自:http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样

linux下使用elk+redis搭建nginx日志分析平台

logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录.其次,需要有个队列,redis的list结构正好可以作为队列使用.然后分析使用elasticsearch就可以进行分析和查询了. 我们需要的是一个分布式的,日志收集和分析系统.logstash有agent和indexer两个角色.对于agent角色,放在单独的web机器上面,然后这个agent不断地读取nginx的日志文件

python 进行nginx日志分析(分析出异常刷新某API接口的IP)

发现有IP对我们API进行大量的数量采集,所以写这个脚本来获取哪些IP只访问单一接口,却不访问其它接口,一般这样的行为,是异常的. 分析前端负载nginx的日志,日志格式如下: 114.249.4.96 - - [15/Jan/2016:23:59:47 +0800] "POST /api2/realtimetrack/ HTTP/1.1" 200 48 "-" "-" "-" 222.128.172.215 - - [15/