更新时间:2023年02月13日15时02分 来源:传智教育 浏览次数:
在收集的日志文件中,通常情况下,不能直接将日志文件进行数据分析,这是因为日志文件中有许多不合法的数据,如以下两条数据:
58.215.204.118 -- [18/Sep/2013:06:52:33 +0000] -400 0 -- 101.226.68.137 -- [18/Sep/2013:06:52:36 +0000]HEAD/HTTP/1.1 200 20 - DNSPod-Monitor/1.0
上述日志数据在网络传输时发生了数据丢失,针对这种数据需要将其过滤去除,数据预处理流程如图11-3所示。
从图11-3可以看出,数据预处理阶段主要是过滤不合法的数据,清洗出无意义的数据信息,并且将原始日志中的数据格式转换成利于后续数据分析时规范的格式,根据统计需求,筛选出不同主题的数据。
图11-3 数据预处理流程
在数据预处理阶段,主要目的就是对收集的原始数据进行清洗和筛选,因此使用前面学习的MapReduce技术就可以轻松实现。在实际开发中,数据预处理过程通常不会直接将不合法的数据直接删除,而是对每条数据添加标识字段,从而避免其他业务使用时丢失数据。
另外,此次数据预处理只是清洗和筛选不合法的数据信息,会读取每行日志文件数据并最终输出一条数据,不会进行其他操作,因此在使用MapReduce技术进行处理过程中,只会涉及Map阶段,不会涉及Reduce阶段。在默认情况下,ReduceTask值为1,因此在主运行函数中,需要设置Job.setNumReduceTasks(0)。