MapReduce例子.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MapReduce例子

硕 士 研 究 生 实 践 报 告 题 目 IBM期末大作业 作者姓名 贾志远 作者学号 指导教师 大江老师 学科专业 软件工程 所在学院 软件学院 提交日期 二○一五年十一月 一 题目要求 我们的项目背景是,可穿戴设备的实时数据分析。1.txt记录的是某一个用户的心跳周期数据,每一个数值表示一次心跳的周期,单位是秒。例如,0.8表示用户当时的心跳间隙是0.8秒。心跳间期按照顺序存储。 利用Hadoop的MapReduce框架编写程序,计算出总测量时间和平均心跳间期,即求和与求平均。请写出程序,并在实验报告中简单描述你的思路。 探索Spark的Transformation中的mapPartition,写出示例程序,并思考何时会用到mapPartition,为什么要用它? 探索Spark的Transformation中的flatMap,写出示例程序,并思考何时会用到它,为什么要用到它。 (选做)SD1和SD2是表征心率变异性的一种指标。结合发给你们的论文,用Java或者Scala实现SD1和SD2的计算(不用考虑并行化,普通的Java或Scala程序即可)。 (选做)假设我们同时监控100个用户的心率,是否能够利用Spark的RDD的特性,并行地计算SD1和SD2?(提示:把每一个用户的心率数据作为RDD里面的一个元素,RDD中不同的元素表示不同用户的心率数据,利用map对每一个用户的心率数据进行并行分析)。请描述设计思路,并尽可能实现一个多用户心率监控的计算程序。 作业要求:提交源代码,并提交一份简单的实验报告,包括程序的思路和对前面提出问题的简要回答。请于11/20前交给班长,并由班长统一发给我。 有问题的话可以QQ或者微信找我:215918152,但是希望到我这里的问题都能够有一定技术含量:P 系统配置等初级问题请自行找牛逼的同学帮忙解决。 二 题目实现 第一题: 本题就是利用Hadoop的MapReduce框架编写程序,计算出总测量时间和平均心跳间期,即求和与求平均,程序代码如下: public class Heart extends Configured implements Tool { private final static Text COUNT = new Text(count); public static class HeartMapper extends MapperObject, Text, Text, FloatWritable { public void map(Object key, Text value, Context context) throws IOException, InterruptedException { String LENGTH = value.toString(); context.write(COUNT, new FloatWritable(Float.parseFloat(LENGTH))); } } public static class HeartReducer extends ReducerText, FloatWritable, Text, FloatWritable { private FloatWritable sum = new FloatWritable(); public void reduce(Text key, IterableFloatWritable values, Context context) throws IOException, InterruptedException { float theSum = 0; int count = 0; for (FloatWritable val : values) { theSum += val.get(); count++; } sum.set(theSum); float mean = theSum / count; context.write(new Text(sumHeartRate ), sum); context.write(new Text(avgHeartRate ), new FloatWritable( mean)); } } public static void main(String[] args) throws Exception { T

您可能关注的文档

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档