网站流量分析项目day02
1. 数据采集之Flume Taildir Source 相当于exec + spool的功能,还有断点续传功能。Flume1.7版本以上才有此功能,可以监控一个目录,并且根据正则表达式对目录中文件名对文件进行实时收集。 注意1:当只以文件大小的方式进行滚动,如果文件不满足条件,会永远处于临时状态。 解决办法1:停止Flume(不推荐) 解决方法2:设置参数:hdfs.idleTimeout,当文件不满足滚动条件的时候,文件在一定时间(hdfs.idleTimeout)内没有任何操作,此时让其执行滚动。 注意2:Flume设置某一种滚动方式,在满足条件后,文件滚动到了第一个datanode后,还需要向其他副本复制,这个也是需要花费时间的,默认是当每个副本都复制完Flume才会认为完成,这时候Flume就会还认为没有写入成功,会继续传递数据。 解决办法:设置参数hdfs.minBlockReplicas=1,这时候Flume就会认为检测到只有一个副本,只要一个写入成功就会认为成功,其他的复制过程还是由hdfs完成。 2. 模块开发之数据预处理 根据目标制定规则,过滤掉“不和规定”的数据,清洗无意义的数据。 a. 实现方式:MR 一般字段比较多,这时候我们会封装成javabean对象,有了javabean对象我们就还要实现writable序列化接口