如何在hadoop中查询日志文件



我在HDFS中有一个日志文件,需要处理它来计算max。点击页面,url等。数据如下:

10.223.157.186 - - [15/Jul/2009:14:58:59 -0700] "GET / HTTP/1.1" 403 202
10.223.157.186 - - [15/Jul/2009:14:58:59 -0700] "GET /favicon.ico HTTP/1.1" 404 209
10.223.157.186 - - [15/Jul/2009:15:50:35 -0700] "GET / HTTP/1.1" 200 9157
10.223.157.186 - - [15/Jul/2009:15:50:35 -0700] "GET /assets/js/lowpro.js HTTP/1.1" 200 10469
10.223.157.186 - - [15/Jul/2009:15:50:35 -0700] "GET /assets/css/reset.css HTTP/1.1" 200 1014
10.223.157.186 - - [15/Jul/2009:15:50:35 -0700] "GET /assets/css/960.css HTTP/1.1" 200 6206 
...............................

如何处理这些数据?有可能把它放在Hive里吗?如果是,那怎么做?还是mapReduce是更好的选择?请指导。

Hive是个不错的选择。

在hive中有两种明确的方法。1)编写一个自定义SerDe来解析日志行,或者2)编写一个hive视图,使用hive的内置字符串udf(可能主要是regexp_extract)来解析组件。

编写SerDe可能更有效,总体上是一个更好的途径,但编写的代码有点棘手。

相关内容

  • 没有找到相关文章

最新更新