大数据模块开发之数据预处理

1. 主要目的
过滤“不合规”数据,清洗无意义的数据
格式转换和规整
根据后续的统计需求,过滤分离出各种不同主题(不同栏目path)的基础数据。
2. 实现方式
开发一个mr程序WeblogPreProcess(内容太长,见工程代码)

public class WeblogPreProcess {

static class WeblogPreProcessMapper extends Mapper<LongWritable, Text, Text, NullWritable> {

Text k = new Text();

NullWritable v = NullWritable.get();

@Override

protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

String line = value.toString();

WebLogBean webLogBean = WebLogParser.parser(line);

//        WebLogBean productWebLog = WebLogParser.parser2(line);

//        WebLogBean bbsWebLog = WebLogParser.parser3(line);

//        WebLogBean cuxiaoBean = WebLogParser.parser4(line);

if (!webLogBean.isValid())

return;

k.set(webLogBean.toString());

context.write(k, v);

//        k.set(productWebLog);

//        context.write(k, v);

}

}

public static void main(String[] args) throws Exception {

Configuration conf = new Configuration();

Job job = Job.getInstance(conf);

job.setJarByClass(WeblogPreProcess.class);

job.setMapperClass(WeblogPreProcessMapper.class);

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(NullWritable.class);

FileInputFormat.setInputPaths(job, new Path(args[0]));

FileOutputFormat.setOutputPath(job, new Path(args[1]));

job.waitForCompletion(true);

}

}

l 运行mr对数据进行预处理

hadoop jar weblog.jar cn.itcast.bigdata.hive.mr.WeblogPreProcess /weblog/input /weblog/preout
3. 点击流模型数据梳理
由于大量的指标统计从点击流模型中更容易得出,所以在预处理阶段,可以使用mr程序来生成点击流模型的数据。
3.1. 点击流模型pageviews表
Pageviews表模型数据生成, 详细见:ClickStreamPageView.java

此时程序的输入数据源就是上一步骤我们预处理完的数据。经过此不处理完成之后的数据格式为:

3.2. 点击流模型visit信息表
注:“一次访问”=“N次连续请求”
直接从原始数据中用hql语法得出每个人的“次”访问信息比较困难,可先用mapreduce程序分析原始数据得出“次”信息数据,然后再用hql进行更多维度统计
用MR程序从pageviews数据中,梳理出每一次visit的起止时间、页面信息
详细代码见工程:ClickStreamVisit.java

原文地址:http://blog.51cto.com/13587708/2285707

时间: 2024-10-09 22:37:51

大数据模块开发之数据预处理的相关文章

大数据模块开发----统计分析

数据仓库建设好以后,用户就可以编写Hive SQL语句对其进行访问并对其中数据进行分析. 在实际生产中,究竟需要哪些统计指标通常由数据需求相关部门人员提出,而且会不断有新的统计需求产生,以下为网站流量分析中的一些典型指标示例. 注:每一种统计指标都可以跟各维度表进行钻取. 1.?流量分析1.1.?多维度统计PV总量按时间维度 -计算每小时pvs,注意gruop by语法 select count(*) as pvs,month,day,hour from ods_weblog_detail gr

大数据模块开发----ETL

ETL工作的实质就是从各个数据源提取数据,对数据进行转换,并最终加载填充数据到数据仓库维度建模后的表中.只有当这些维度/事实表被填充好,ETL工作才算完成. 本项目的数据分析过程在hadoop集群上实现,主要应用hive数据仓库工具,因此,采集并经过预处理后的数据,需要加载到hive数据仓库中,以进行后续的分析过程. 1.?创建ODS层数据表1.1.?原始日志数据表 drop table if exists ods_weblog_origin; create table ods_weblog_o

大数据模块开发之数据采集

1. 需求在网站web流量日志分析这种场景中,对数据采集部分的可靠性.容错能力要求通常不会非常严苛,因此使用通用的flume日志采集框架完全可以满足需求.2. Flume日志采集系统2.1. Flume采集Flume采集系统的搭建相对简单:1.在服务器上部署agent节点,修改配置文件2.启动agent节点,将采集到的数据汇聚到指定的HDFS目录中针对nginx日志生成场景,如果通过flume(1.6)收集,无论是Spooling Directory Source和Exec Source均不能满

大数据模块开发之结果导出

1. Apache SqoopSqoop是Hadoop和关系数据库服务器之间传送数据的一种工具.它是用来从关系数据库如:MySQL,Oracle到Hadoop的HDFS,并从Hadoop的文件系统导出数据到关系数据库.由Apache软件基金会提供.Sqoop:"SQL 到 Hadoop 和 Hadoop 到SQL".Sqoop工作机制是将导入或导出命令翻译成mapreduce程序来实现.在翻译出的mapreduce中主要是对inputformat和outputformat进行定制.sq

大数据模块开发----数据仓库设计

1.?维度建模基本概念 维度建模(dimensional modeling)是专门用于分析型数据库.数据仓库.数据集市建模的方法.数据集市可以理解为是一种"小型数据仓库". 维度表(dimension) 维度表示你要对数据进行分析时所用的一个量,比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析.这样的按..分析就构成一个维度.再比如"昨天下午我在星巴克花费200元喝了一杯卡布奇诺".那么以消费为主题进行分析,可从这段信息中提取三个维度:时间维度

大数据模块开发----结果导出

1.?Apache Sqoop Sqoop是Hadoop和关系数据库服务器之间传送数据的一种工具.它是用来从关系数据库如:MySQL,Oracle到Hadoop的HDFS,并从Hadoop的文件系统导出数据到关系数据库.由Apache软件基金会提供. Sqoop:"SQL 到 Hadoop 和 Hadoop 到SQL".Sqoop工作机制是将导入或导出命令翻译成mapreduce程序来实现. 在翻译出的mapreduce中主要是对inputformat和outputformat进行定制

大数据预处理技术

一.大数据预处理的几个步骤 1.数据预处理 2.数据清洗 3.数据集成 4.数据归约 5.数据变换 6.数据离散化 7.大数据预处理 二.数据预处理 现实中的数据大多是“脏”数据: ①不完整 缺少属性值或仅仅包含聚集数据 ②含噪声 包含错误或存在偏离期望的离群值 比如:salary=“-10”,明显是错误数据 ③不一致 用于商品分类的部门编码存在差异 比如age=“42”Birthday=“03/07/1997” 而我们在使用数据过程中对数据有如下要求: 一致性.准确性.完整性.时效性.可信性.

借助 SIMD 数据布局模板和数据预处理提高 SIMD 在动画中的使用效率

原文链接 简介 为发挥 SIMD1 的最大作用,除了对其进行矢量化处理2外,我们还需作出其他努力.可以尝试为循环添加 #pragma omp simd3,查看编译器是否成功进行矢量化,如果性能有所提升,则达到满意状态. 然而,可能性能根本不会提升,甚至还会降低. 无论处于何种情况,为了最大限度发挥 SIMD 执行的优势并实现性能提升,通常需要重新设计算法和数据布局,以便生成的 SIMD 代码尽可能高效. 另外还可收到额外的效果,即标量(非矢量化)版代码会表现得更好. 本文将通过一个 3D 动画算

数据预处理(完整步骤)

原文:http://dataunion.org/5009.html 一:为什么要预处理数据?(1)现实世界的数据是肮脏的(不完整,含噪声,不一致)(2)没有高质量的数据,就没有高质量的挖掘结果(高质量的决策必须依赖于高质量的数据:数据仓库需要对高质量的数据进行一致地集成)(3)原始数据中存在的问题:不一致 —— 数据内含出现不一致情况重复不完整 —— 感兴趣的属性没有含噪声 —— 数据中存在着错误.或异常(偏离期望值)的数据高维度二:数据预处理的方法(1)数据清洗 —— 去噪声和无关数据(2)数