使用过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是由Apache软件基金会开发的一个开源框架,主要用于存储和处理大规模数据集。它基于Google的MapReduce计算模型和GFS(Google File System)分布式文件系统理念,设计为可运行在廉价硬件集群上。 2. **Hadoop...
Hadoop存储与计算分离实践的知识点涵盖了Hadoop技术的核心概念和在云上部署的具体实践。以下是详细知识点: 1. Hadoop存储与计算分离的概念:Hadoop作为大数据处理框架,其核心思想是存储与计算分离。这种架构的...
【Hadoop大数据教学视频100集】是一套全面深入的教程,旨在帮助学习者掌握Hadoop生态系统的核心技术和应用。这套教程涵盖了从基础到高级的Hadoop知识,包括Hadoop的分布式文件系统(HDFS)和MapReduce计算框架。通过...
如何使用hadoop进行数据分析.zip 如何使用hadoop进行数据分析.zip 如何使用hadoop进行数据分析.zip 如何使用hadoop进行数据分析.zip 如何使用hadoop进行数据分析.zip 如何使用hadoop进行数据分析.zip 如何使用hadoop...
**使用Hadoop实现WordCount实验报告** 实验报告的目的是详细记录使用Hadoop在Windows环境下实现WordCount应用的过程,包括环境配置、WordCount程序的实现以及实验结果分析。本实验旨在理解Hadoop分布式计算的基本...
使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用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 : ...
在Hadoop生态系统中,`hadoop.dll`和`winutils.exe`是两个关键组件,尤其对于Windows用户来说,它们在本地开发和运行Hadoop相关应用时必不...了解并正确使用这两个文件,对于在Windows上搭建和管理Hadoop环境至关重要。
* 划分数据集得到训练集、验证集、测试集 * 实现KNN分类模型 * 评价KNN分类模型 八、教材与参考资料 教材: * Hadoop大数据开发基础 参考资料: * Hadoop与大数据挖掘 * Hadoop大数据分析与挖掘实战
在Hadoop生态系统中,调试工具对于开发者和管理员来说至关重要,特别是在Windows环境中。本文将深入探讨三个关键组件:hadoop....理解和掌握这些工具的使用,将有助于你在Windows环境下更有效地开发和管理Hadoop集群。
YARN将MapReduce的资源管理和作业调度功能分离,使得Hadoop可以支持更多的计算模型。这个JAR文件包含了YARN的服务器端和客户端组件,如ResourceManager、NodeManager、ApplicationMaster等。 4. **hadoop-client**...
该模型可以对大量数据进行学习和训练,以提高电动汽车充电站负荷预测的准确性。 实验结果 本文的实验结果表明,基于Hadoop的电动汽车充电站负荷预测模型可以满足海量数据要求的短期、快速、精准的快换式充电站负荷...
Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程...
1. 数据预处理:使用Hadoop MapReduce处理大规模数据集,进行清洗、转换和分词等操作,将非结构化文本转化为可分析的特征向量。 2. 训练模型:Map阶段,每个节点独立计算特征在各个类别的频率,Reduce阶段汇总这些...
在IT行业中,Hadoop是一个广泛使用的开源框架,用于存储和处理大数据。`hadoop-eclipse-plugin`是Eclipse集成开发环境中的一个插件,它使得开发者能够在Eclipse中直接编写、调试和运行Hadoop MapReduce程序,极大地...
在提供的信息中,我们关注的是"Hadoop的dll文件",这是一个动态链接库(DLL)文件,通常在Windows操作系统中使用,用于存储可由多个程序共享的功能和资源。Hadoop本身是基于Java的,因此在Windows环境下运行Hadoop...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。它是由Apache软件基金会开发并维护的,旨在实现高效、可扩展的数据处理能力。Hadoop的核心由两个主要组件构成:Hadoop Distributed ...
Hadoop是大数据处理领域中的一个核心框架,主要由Apache软件基金会开发。它的设计目标是处理和存储海量数据,尤其在分布式...正确安装和配置这些组件,能够让你在Windows系统上顺利地使用Hadoop进行大数据处理和分析。
Hadoop是Apache软件基金会开发的一个开源框架,专为处理和存储大规模数据集而设计。它基于Google的MapReduce编程模型,通过将数据分布在多台服务器上并行处理,实现了高效的数据计算。此外,Hadoop的另一核心组件...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分析。它最初设计的目标是处理和存储海量数据,尤其适合那些不适合在单台机器上运行的大型数据集。本篇将详细介绍如何在Windows系统中安装Hadoop...