我有一个用Pig编写的map-reduce作业正在执行以下操作。
给出一组表示访问网站上某个资源的apache日志文件
例如这个日志:
1.1.1.1 - [14/Jun/2014:06:26:27 +0000] "GET /path/to/resource/<resource_id>" "Agent"
将被转换为(如果它不是机器人):
(1.1.1.1, <resource_id>)
这是通过一个简单的UDF完成的,该UDF使用正则表达式+库来解析日志以进行机器人检测 从此步骤开始,脚本将继续执行一些额外的map-reduce操作。
问题如下:
m1.large
个实例运行了1个小时的脚本。 已经生产的hadoop日志没有显示出太大的进展,似乎陷入了前面描述的初始准备阶段。
2014-07-07 06:31:17,609 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - detailed locations: M: pre1[4,7],pre2[-1,-1],pre3[7,7],pre4[8,7],r2[13,5] C: R: r5[-1,-1]
2014-07-07 06:31:17,661 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 0% complete
您如何建议从此处开始调试问题?
您认为给定数据大小的机器数量是否合理?
我真的希望能在这段时间内完成这项工作。
谢谢
答案 0 :(得分:0)
如果你有大量的日志文件,我可以想象处理可能会很慢。在这种情况下,您可以在将它们放在HDFS上之前将它们组合起来。对于这种硬件上的简单解析脚本,一般5GB的数量应该不是问题。
这种情况的一般下一步是使问题变小。