使用过NetflixPrize数据集的同学一定知道,NetflixPrize的Probe数据是包含在历史数据中的。做训练当然要将预测数据集分离出来~
一直在使用Hadoop平台,所以写了一个hadoop程序将Probe提取出来:
1)写了一个自定义的Writable,在MapReduce的排序中比较有用,使用Text的排序感觉很不爽。
2)使用到了两个比较实用的方法:
在新版的API中 org.apache.hadoop.mapreduce中,这两个函数是
void setup(Context context)
void cleanup (Context context)
自定义的Mapper和Reducer都可以继承这两个方法。setup在数据处理前调用一次,所以在这里你可以做一些数据的加载或初始化;cleanup是在数据处理后调用一次,可以用来收集一些你觉得有用的数据和你想做的事情:-)
在 Hadoop的新版的API中源代码里,你可以比较清楚地看到Mapper和Reducer的工作过程,参见org.apache.hadoop.mapreduce.mapper和org.apache.hadoop.mapreduce.reducer。
在 Hadoop的旧版的API中,你可以直接看到的就不多了~ 新版本的API给使用者更多的执行细节,这样会给开发带来了很大的便利,所以Hadoop开发者还是比较推荐新版API的。不过旧版本的API也有完成相同功能的函数
void configure(JobConf job);
void close()
configure在数据处理前调用一次,close是在数据处理后调用一次。
言归正传,开始处理数据集。
1.数据集是以小文件的形式存在 training_set文件夹下,hadoop不太擅长处理大量的小文件,所以我们可以使用脚本将小文件合并一下(在附件中)。个人感觉脚本效果比hadoop处理效果好一些:-),大家也可以试试hadoop的方法合并。可以参考
http://coderplay.javaeye.com/blog/468623
脚本使用方法: ./preprocess.sh training_set
2.上传到HDFS上:
mkdir netfix_all
cp netflix.data netflix_all/
hadoop fs -put netflix_all Netflix_All
3.使用 hadoop 分离预测集。
1) 自己写了一个UserItem类,比较简单,可以参考《hadoop权威指南》中的TextPair类来写。不过需要注意的是,你使用的是 org.apache.hadoop.mapreduce 还是 org.apache.hadoop.mapred的API(旧版本API),使用旧版本的话注意在自定义的类中还要加上一个方法 public static UserItem read(DataInput in),这个在书上是没有的,假如你都采用 org.apache.hadoop.mapreduce的API,是没有问题的。采用 org.apache.hadoop.mapred的API的话,这个方法就应该加上,否则执行时会出问题。
2) 预测集分离分为两道MapReduce任务:第一道直接输出训练集,将预测集保存在容器中,在Map任务结束后以mapid为文件名保存预测集到本地。第二道任务将预测集合并成一个文件。
OK,完成!附上脚本和代码~
分享到:
相关推荐
Hadoop存储与计算分离实践
hadoop权威指南de数据集. A sample of the NCDC weather dataset that is used throughout the book can be found at https://github.com/tomwhite/hadoop-book/tree/master/input/ncdc/all. and another one : ...
2016年阿里云栖大会关于Hadoop存储资料,供一起学习。
Hadoop 2.9.0 全部废除属性集,废除的属性名称和对应新版属性名称汇总
使用hadoop实现WordCount详细实验报告,配有环境变量配置截图以及实验运行及结果详细过程描述与截图
hadoop的hadoop.dll和winutils.exe下载
项目负责人tomwhite透过本书详细阐述了如何使用hadoop构建可靠、可伸缩的分布式系统,程序员可从中探索如何分析海量数据集,管理员可以从中了解如何安装和运行hadoop集群。 本书结合丰富的案例来展示如何用hadoop...
在windows环境下开发hadoop时,需要配置HADOOP_HOME环境变量,变量值D:\hadoop-common-2.7.3-bin-master,并在Path...解决方案:下载本资源解压将hadoop.dll和winutils.exe文件复制到hadoop2.7.3的bin目录下即可解决。
Hadoop大数据开发基础教案-项目案例:电影网站用户性别预测教案.pdf
Hadoop大数据资料集锦Hadoop大数据资料集锦Hadoop大数据资料集锦Hadoop大数据资料集锦
hadoop调试工具hadoop.dll和hadoop.exp和winutils.exe 64位
ES和HADOOP使用问题和需求
Hadoop使用常见问题以及解决方法,简单实用
请将hadoop2.7.1中的bin和etc删除,使用hadooponwindows-master中的bin和etc代替 资源说明: 有些时候,我们想在自己电脑windows系统上使用hadoop,这样省去了建虚拟机的麻烦——虚拟机会占用更多电脑系统资源。 ...
王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第九讲Hadoop图文训练课程:剖析NameNode和Secondary NameNode的工作机制和流程. 此教程来自于王家林免费发布的3本Hadoop教程:云计算分布式大数据...
支持如下版本的Hadoop hadoop-2.6.0 hadoop-2.6.3 hadoop-2.6.4 hadoop-2.7.1 hadoop-2.8.1 hadoop-2.8.3 hadoop-3.0.0
摘要 Hadoop 是一个处理、存储和分析海量的...Hadoop 和 Google 内部使用的分布式计算系统原理相同,其开源特性使其成为分布式计算系统的事实上的国际标准。 Yahoo、Facebook、Amazon,以及国内的百度、阿里巴巴等众多
Hadoop_Hadoop集群(第4期)_SecureCRT使用 Hadoop_Hadoop集群(第5期)_Hadoop安装配置 Hadoop_Hadoop集群(第5期副刊)_JDK和SSH无密码配置 Hadoop_Hadoop集群(第6期)_WordCount运行详解 Hadoop_Hadoop集群(第7...
【原创学士学位毕业论文,未入库可过查重】万字原创,基于Hadoop架构类的学位毕业论文,适合本科专科毕业生使用。 内容概要: 本论文以Hadoop架构为基础,深入研究了其在大数据处理和分析方面的应用。通过对Hadoop...
百度云链接,永久有效,hadoop,MapReduce,HDFS_DN工作机制,