最近在使用hadoop处理日志统计相关字段的频率与数量,目前只有一个输入文件900M ,需要处理到任务有4个,分别是统计IP,HTTP 状态码,响应时间,已经接口到总频次。
开始想到到是使用作业链到方式,但是考虑IO和网络数据传输到限制,最总选择使用作业归并来处理。
自己理解中到作业归并:
作业归并优点:数据只需要加载一次和解析一次
与作业链比较,將多个map使用一个map来进行处理同时將多个reduce同样归为一个reduce来处理。
主要注意:
(1):map阶段处理好不同任务到tag
(2):考虑这些任务是否具有相同到中间键和输出格式。因为他们是共享管道
主要步骤:
(1):將多个mapper代码放在一起
(2):在mapper中,生成键值时,需要标记tag来区分map
(3):在reducer中,使用tag进行相对应到reducer代码到执行
(4) :使用Multipleuts將作业输出分开