如何在hadoop中查询日志文件

时间:2014-05-06 04:59:00

标签: logging hadoop mapreduce hive

我在HDFS中有一个日志文件,需要处理它才能计算出最大值。点击页面,网址等 数据如下:

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 
...............................

我如何处理这些数据?可以把它放在蜂巢中吗?如果是,那怎么样?或mapReduce是更好的选择? 请指导。

1 个答案:

答案 0 :(得分:0)

Hive是个不错的选择。

您有两种明确的方法可以在蜂巢中执行此操作。要么1)编写自定义SerDe来解析日志行,要么2)编写一个使用hive内置字符串UDF(主要是regexp_extract)的hive视图来解析组件。

编写SerDe可能会更有效,总体来说是一条更好的路径,但是要编写的代码有点棘手。