`
iamicebergs
  • 浏览: 26764 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用hadoop分离NetflixPrize训练集和预测集

阅读更多
    使用过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,完成!附上脚本和代码~
0
1
分享到:
评论

相关推荐

    Hadoop存储与计算分离实践PDF

    Hadoop是由Apache软件基金会开发的一个开源框架,主要用于存储和处理大规模数据集。它基于Google的MapReduce计算模型和GFS(Google File System)分布式文件系统理念,设计为可运行在廉价硬件集群上。 2. **Hadoop...

    Hadoop存储与计算分离实践

    Hadoop存储与计算分离实践的知识点涵盖了Hadoop技术的核心概念和在云上部署的具体实践。以下是详细知识点: 1. Hadoop存储与计算分离的概念:Hadoop作为大数据处理框架,其核心思想是存储与计算分离。这种架构的...

    Hadoop大数据教学视频100集

    【Hadoop大数据教学视频100集】是一套全面深入的教程,旨在帮助学习者掌握Hadoop生态系统的核心技术和应用。这套教程涵盖了从基础到高级的Hadoop知识,包括Hadoop的分布式文件系统(HDFS)和MapReduce计算框架。通过...

    如何使用hadoop进行数据分析.zip

    如何使用hadoop进行数据分析.zip 如何使用hadoop进行数据分析.zip 如何使用hadoop进行数据分析.zip 如何使用hadoop进行数据分析.zip 如何使用hadoop进行数据分析.zip 如何使用hadoop进行数据分析.zip 如何使用hadoop...

    使用hadoop实现WordCount实验报告.docx

    **使用Hadoop实现WordCount实验报告** 实验报告的目的是详细记录使用Hadoop在Windows环境下实现WordCount应用的过程,包括环境配置、WordCount程序的实现以及实验结果分析。本实验旨在理解Hadoop分布式计算的基本...

    使用hadoop进行天气数据分析.zip

    使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop进行数据分析天气数据分析.zip使用hadoop...

    hadoop权威指南de数据集.

    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下载

    在Hadoop生态系统中,`hadoop.dll`和`winutils.exe`是两个关键组件,尤其对于Windows用户来说,它们在本地开发和运行Hadoop相关应用时必不...了解并正确使用这两个文件,对于在Windows上搭建和管理Hadoop环境至关重要。

    Hadoop大数据开发基础教案-项目案例:电影网站用户性别预测教案.pdf

    * 划分数据集得到训练集、验证集、测试集 * 实现KNN分类模型 * 评价KNN分类模型 八、教材与参考资料 教材: * Hadoop大数据开发基础 参考资料: * Hadoop与大数据挖掘 * Hadoop大数据分析与挖掘实战

    hadoop调试工具hadoop.dll和hadoop.exp和winutils.exe

    在Hadoop生态系统中,调试工具对于开发者和管理员来说至关重要,特别是在Windows环境中。本文将深入探讨三个关键组件:hadoop....理解和掌握这些工具的使用,将有助于你在Windows环境下更有效地开发和管理Hadoop集群。

    hadoop jar合集

    YARN将MapReduce的资源管理和作业调度功能分离,使得Hadoop可以支持更多的计算模型。这个JAR文件包含了YARN的服务器端和客户端组件,如ResourceManager、NodeManager、ApplicationMaster等。 4. **hadoop-client**...

    基于Hadoop的电动汽车充电站负荷预测.pdf

    该模型可以对大量数据进行学习和训练,以提高电动汽车充电站负荷预测的准确性。 实验结果 本文的实验结果表明,基于Hadoop的电动汽车充电站负荷预测模型可以满足海量数据要求的短期、快速、精准的快换式充电站负荷...

    Hadoop安装使用教程0基础!!!易懂!!!

    Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程...

    基于hadoop的朴素贝叶斯分类器

    1. 数据预处理:使用Hadoop MapReduce处理大规模数据集,进行清洗、转换和分词等操作,将非结构化文本转化为可分析的特征向量。 2. 训练模型:Map阶段,每个节点独立计算特征在各个类别的频率,Reduce阶段汇总这些...

    hadoop-eclipse-plugin插件和hadoop.dll和winutile.exe.zip

    在IT行业中,Hadoop是一个广泛使用的开源框架,用于存储和处理大数据。`hadoop-eclipse-plugin`是Eclipse集成开发环境中的一个插件,它使得开发者能够在Eclipse中直接编写、调试和运行Hadoop MapReduce程序,极大地...

    hadoop的dll文件 hadoop.zip

    在提供的信息中,我们关注的是"Hadoop的dll文件",这是一个动态链接库(DLL)文件,通常在Windows操作系统中使用,用于存储可由多个程序共享的功能和资源。Hadoop本身是基于Java的,因此在Windows环境下运行Hadoop...

    各个版本Hadoop,hadoop.dll以及winutils.exe文件下载大合集

    在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。它是由Apache软件基金会开发并维护的,旨在实现高效、可扩展的数据处理能力。Hadoop的核心由两个主要组件构成:Hadoop Distributed ...

    hadoop2.8.3包含winutils.exe和hadoop.dll

    Hadoop是大数据处理领域中的一个核心框架,主要由Apache软件基金会开发。它的设计目标是处理和存储海量数据,尤其在分布式...正确安装和配置这些组件,能够让你在Windows系统上顺利地使用Hadoop进行大数据处理和分析。

    基于hadoop的评价预测系统.zip

    Hadoop是Apache软件基金会开发的一个开源框架,专为处理和存储大规模数据集而设计。它基于Google的MapReduce编程模型,通过将数据分布在多台服务器上并行处理,实现了高效的数据计算。此外,Hadoop的另一核心组件...

    Hadoop Windows系统安装包 和 winutils的文件

    在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分析。它最初设计的目标是处理和存储海量数据,尤其适合那些不适合在单台机器上运行的大型数据集。本篇将详细介绍如何在Windows系统中安装Hadoop...

Global site tag (gtag.js) - Google Analytics