apache日志hadoop大数据分析项目清洗数据核心功能解说及代码实现_第1页
apache日志hadoop大数据分析项目清洗数据核心功能解说及代码实现_第2页
apache日志hadoop大数据分析项目清洗数据核心功能解说及代码实现_第3页
apache日志hadoop大数据分析项目清洗数据核心功能解说及代码实现_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、discuz论坛apache日志hadoop大数据分析项目: 清洗数据核心功能解说及代码实现我们在进行日志分析的时候,那么日志的数据是杂乱无章的,或则说日志的数据并不是我们都想看到的。所以我们需要对里面的数据进行清洗,说的直白一点就是要过滤里面的字符串。 下面便是我们需要过滤的数据: 8 - - 01/Aug/2014:01:01:05 +0800 GET /thread-5981-1-1.html HTTP/1.1 200 18152/s?wd=cocos2dx%203.2%20wp8%E6%94%

2、AF%E6%8C%81&pn=30&oq=cocos2dx%203.2%20wp8%E6%94%AF%E6%8C%81&tn=28035039_2_pg&ie=utf-8&rsv_page=1 Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 UBrowser/1.0.349.1252 Safari/537.36这里如果对日志不了解或则不了解日志分析,可能会产生问题?为什么过滤这条数据,就能达到清洗的目的。这里所讲的只是核心内容,对于运行mapreduc

3、e来处理,可以看后面的文章。我这里重点讲如何把上面的数据,过滤出我们想要的数据。 我们需要什么数据,从about云分析discuz论坛apache日志hadoop大数据项目:概要设计说明书中,我们需要过滤出下面数据: 1. ip 地 址 2. 访问时间3.url地址 4.用户使用浏览器 过滤分析1. ip地址获取上面ip地址还是比较好过滤的,分隔符为- -即可得到我们想要的数据 ipField = line.split(- -)0.trim();2. 访问时间访问时间,想获取时间容易,但是想做一个文艺程序员还是得费点功夫。 01/Aug/2014:01:01:05 +0800,对于这个有的采用

4、直接获取01/Aug/2014:01:01:05的这种方式,这种方式没有错,算是一个正常程序员所做的事 情。那么我们该怎么做的文艺优雅一点。这里是直接获取01/Aug/2014:01:01:05+0800,这里是由相关函数的。 1. dt = new SimpleDateFormat(dd/MMM/yyyy:HH:mm:ss Z, Locale.US).parse(time);我们使用这个函数,将其转换为正常的时间格式。但是我们想要我们中国人能够一眼识别的正常时间。 2014年8月1日 下午07时04分58秒 如果你采用了这种形式20140801070458,这个既不是文艺程序员、也不是正常程

5、序员所做的事情,就只剩下2比程序员这个职称了。 ok,下面我们做的文艺一点。 可是我们怎么才能得到下面时间,一个个进行组合,getYarn()+getMonth.等,完,又 步入2比程序员的行列。 1. 2014年8月1日 下午07时04分58秒 这里介绍一个简单的方法 1.DateFormat df1 =DateFormat.getDateTimetance(DateFormat.LONG,DateFormat.LONG);1. dateField = df1.format(dt);这样就完美解决这个问题,不需要组合,只需要getDateTime tance传递参数即可,更多的时间格式参考J

6、ava新api获取年月日时分秒 3. url与浏览器的获取这里面关键是对转义字符的理解正确,比如如何以双引号作为分隔符,如何以括号为分隔符。 解说完毕直接上代码: 1. package ; 2.3. import java.text.DateFormat;4. import java.text.ParseException;5. import java.text.SimpleDateFormat;6. import java.util.Date;7. import java.util.Locale; 8.9. public class test 10.11. p

7、ublic static void StringResolves(String line) throws ParseException 12. String ipField, dateField, urlField, browserField; 13.14. / 获取ip地址15. ipField = line.split(- -)0.trim(); 16.17. / 获取时间,并转换格式18. int getTimeFirst = line.indexOf();19. int getTimeLast = line.indexOf();20. String time = line.substr

8、ing(getTimeFirst + 1, getTimeLast).trim();21. Date dt = null;22. DateFormat df1 = DateFormat.getDateTime tance(DateFormat.LONG,23. DateFormat.LONG);24. dt = new SimpleDateFormat(dd/MMM/yyyy:HH:mm:ss Z, Locale.US)25. .parse(time);26.dateField = df1.format(dt);27.28./ 获取url29.String getUrl = line.spli

9、t();30.31.String firtGeturl = getUrl1.substring(3).trim();32.33.String secondGeturl = getUrl3.trim();34.urlField = firtGeturl + 分隔符 + secondGeturl; 35. 36./ 获取浏览器 37.String getBrowse = line.split();38.String strBrowse = getBrowse5.toString();39.String str = (KHTML, like Gecko);40.int i = strBrowse.i

10、ndexOf(str);41.strBrowse = strBrowse.substring(i);42.String strBrowse1 = strBrowse.split(/);43.strBrowse = strBrowse10.toString();44.String strBrowse2 = strBrowse.split();45.strBrowse = strBrowse21.trim();46.47.System.out.println(ipField);48.System.out.println(dateField);49.System.out.println(urlFie

11、ld);50.System.out.println(strBrowse);4.public static void matring args) throws ParseException 55./ TODO Auto-generated method stub56.String browser = 8 - -01/Aug/2014:19:04:58 +0800 GET/uc_server/avatar.php?uid=3841&size=small HTTP/1.1 301 463/forum.php Mo

12、zilla/5.0 (Windows NT 6.2;WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95Safari/537.36 SE 2.X MetaSr 1.0;57.58.test.StringResolves(browser );2. 63.运行结果如下: 本文链接: /thread-8637-1-1.html 对于云技术、大数据爱好者、可以关注:about云腾讯认证空间,每天更新最新内容,经典文章 /278595437/mainabout云官方群39327136、371358502、322273

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论