| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

实验3MapReduce编程初级实践

文***享

贡献于2023-04-02

字数:6975

实验3 MapReduce编程初级实践
1 实验目
1通实验掌握基MapReduce编程方法
2掌握MapReduce解决常见数处理问题包括数重数排序数挖掘等
2 实验台
已配置完成Hadoop伪分布式环境
3 实验容求
1编程实现文件合重操作
两输入文件文件A文件B请编写MapReduce程序两文件进行合剔中重复容新输出文件C面输入文件输出文件样例供参考

实验终结果(合文件):

代码:
package comMerge

import javaioIOException
import orgapachehadoopconfConfiguration
import orgapachehadoopfsPath
import orgapachehadoopioText
import orgapachehadoopmapreduceJob
import orgapachehadoopmapreduceMapper
import orgapachehadoopmapreduceReducer
import orgapachehadoopmapreducelibinputFileInputFormat
import orgapachehadoopmapreduceliboutputFileOutputFormat

public class Merge {

public static class Map extends Mapper {
private static Text text new Text()

public void map(Object key Text value Context context)
throws IOException InterruptedException {
text value
contextwrite(text new Text())
}
}

public static class Reduce extends Reducer {
public void reduce(Text key Iterable values Context context)
throws IOException InterruptedException {
contextwrite(key new Text())
}
}

public static void main(String[] args) throws Exception {
Configuration conf new Configuration()
confset(fsdefaultFS hdfslocalhost9000)
String[] otherArgs new String[] { input output }
if (otherArgslength 2) {
Systemerrprintln(Usage Merge and duplicate removal )
Systemexit(2)
}
Job job JobgetInstance(conf Merge and duplicate removal)
jobsetJarByClass(Mergeclass)
jobsetMapperClass(Mapclass)
jobsetReducerClass(Reduceclass)
jobsetOutputKeyClass(Textclass)
jobsetOutputValueClass(Textclass)
FileInputFormataddInputPath(job new Path(otherArgs[0]))
FileOutputFormatsetOutputPath(job new Path(otherArgs[1]))
Systemexit(jobwaitForCompletion(true) 0 1)
}

}
2 编写程序实现输入文件排序
现输入文件文件中行容均整数求读取文件中整数进行升序排序输出新文件中输出数格式行两整数第数字第二整数排序位次第二整数原排列整数面输入文件输出文件样例供参考

实验结果截图:


代码:
package comMergeSort

import javaioIOException
import orgapachehadoopconfConfiguration
import orgapachehadoopfsPath
import orgapachehadoopioIntWritable
import orgapachehadoopioText
import orgapachehadoopmapreduceJob
import orgapachehadoopmapreduceMapper
import orgapachehadoopmapreduceReducer
import orgapachehadoopmapreducelibinputFileInputFormat
import orgapachehadoopmapreduceliboutputFileOutputFormat

public class MergeSort {
public static class Map extends
Mapper {
private static IntWritable data new IntWritable()

public void map(Object key Text value Context context)
throws IOException InterruptedException {
String line valuetoString()
dataset(IntegerparseInt(line))
contextwrite(data new IntWritable(1))
}
}

public static class Reduce extends
Reducer {
private static IntWritable linenum new IntWritable(1)

public void reduce(IntWritable key Iterable values
Context context) throws IOException InterruptedException {
for (IntWritable val values) {
contextwrite(linenum key)
linenum new IntWritable(linenumget() + 1)
}

}

}

public static void main(String[] args) throws Exception {
Configuration conf new Configuration()
confset(fsdefaultFS hdfslocalhost9000)
String[] otherArgs new String[] { input2 output2 } * 直接设置输入参数 *
if (otherArgslength 2) {
Systemerrprintln(Usage mergesort )
Systemexit(2)
}
Job job JobgetInstance(conf mergesort)
jobsetJarByClass(MergeSortclass)
jobsetMapperClass(Mapclass)
jobsetReducerClass(Reduceclass)
jobsetOutputKeyClass(IntWritableclass)
jobsetOutputValueClass(IntWritableclass)
FileInputFormataddInputPath(job new Path(otherArgs[0]))
FileOutputFormatsetOutputPath(job new Path(otherArgs[1]))
Systemexit(jobwaitForCompletion(true) 0 1)

}

}
3 定表格进行信息挖掘
面出childparent表格求挖掘中父子辈关系出祖孙辈关系表格

实验结果截图:

代码:
package comjoin

import javaioIOException
import javautil*
import orgapachehadoopconfConfiguration
import orgapachehadoopfsPath
import orgapachehadoopioText
import orgapachehadoopmapreduceJob
import orgapachehadoopmapreduceMapper
import orgapachehadoopmapreduceReducer
import orgapachehadoopmapreducelibinputFileInputFormat
import orgapachehadoopmapreduceliboutputFileOutputFormat

public class STjoin {
public static int time 0

public static class Map extends Mapper {
public void map(Object key Text value Context context)
throws IOException InterruptedException {
String child_name new String()
String parent_name new String()
String relation_type new String()
String line valuetoString()
int i 0
while (linecharAt(i) ' ') {
i++
}
String[] values { linesubstring(0 i) linesubstring(i + 1) }
if (values[0]compareTo(child) 0) {
child_name values[0]
parent_name values[1]
relation_type 1
contextwrite(new Text(values[1]) new Text(relation_type + +
+ child_name + + + parent_name))
relation_type 2
contextwrite(new Text(values[0]) new Text(relation_type + +
+ child_name + + + parent_name))
}
}
}

public static class Reduce extends Reducer {
public void reduce(Text key Iterable values Context context)
throws IOException InterruptedException {
if (time 0) {
contextwrite(new Text(grand_child) new Text(grand_parent))
time++
}
int grand_child_num 0
String grand_child[] new String[10]
int grand_parent_num 0
String grand_parent[] new String[10]
Iterator ite valuesiterator()
while (itehasNext()) {
String record itenext()toString()
int len recordlength()
int i 2
if (len 0)
continue
char relation_type recordcharAt(0)
String child_name new String()
String parent_name new String()
while (recordcharAt(i) '+') {
child_name child_name + recordcharAt(i)
i++
}
i i + 1
while (i < len) {
parent_name parent_name + recordcharAt(i)
i++
}
if (relation_type '1') {
grand_child[grand_child_num] child_name
grand_child_num++
} else {
grand_parent[grand_parent_num] parent_name
grand_parent_num++
}
}

if (grand_parent_num 0 && grand_child_num 0) {
for (int m 0 m < grand_child_num m++) {
for (int n 0 n < grand_parent_num n++) {
contextwrite(new Text(grand_child[m]) new Text(
grand_parent[n]))
}
}
}
}
}

public static void main(String[] args) throws Exception {
Configuration conf new Configuration()
confset(fsdefaultFS hdfslocalhost9000)
String[] otherArgs new String[] { input3 output3 }
if (otherArgslength 2) {
Systemerrprintln(Usage Single Table Join )
Systemexit(2)
}
Job job JobgetInstance(conf Single table join )
jobsetJarByClass(STjoinclass)
jobsetMapperClass(Mapclass)
jobsetReducerClass(Reduceclass)
jobsetOutputKeyClass(Textclass)
jobsetOutputValueClass(Textclass)
FileInputFormataddInputPath(job new Path(otherArgs[0]))
FileOutputFormatsetOutputPath(job new Path(otherArgs[1]))
Systemexit(jobwaitForCompletion(true) 0 1)

}

}



4 实验报告
云计算 实验报告
题目:
MapReduce编程初级实践
姓名
包生友
日期:20161220
实验环境:机房虚拟机配置环境
解决问题思路:根老师代码进行操作
实验容完成情况:已完成学商量部分代码尚未知道作
出现问题:执行出现未找main函数情况次执行会报错说文件已存
解决方案(列出遇问题解决办法列出没解决问题):
问题:1执行出现未找main函数情况
2 次执行会报错说文件已存
解决办法:删输出文件(程序执行时输出文件存)

5 实验总结
通次实验掌握基MapReduce编程方法掌握MapReduce解决常见数处理问题包括数重数排序数挖掘等短暂云计算课程实验结束知道云计算学没头


文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

linux编程SHELL编程实验报告

Linux编程课程设计报告题 目: Linux Shell编程 专 业 学 号 姓 名 指 导 教 师 日 期

z***u 1年前 上传613   0

数控铣床编程与操作实验

实验四 数控铣床编程与操作实验一、实验目的1.了解数控铣床的基本特点和机床坐标系。2.熟悉FANUC 0i-MD 数控系统应用。3.掌握数控铣床常规操作方法,重点学习数控铣床回零操作、手动对刀操作、工件坐标系设定、程序输入与编辑、自动加工等操作。二、实验设备1.CGM4300B数控铣床2.FANUC 0i-MD 数控系统三、实验基础知识1.数控铣床的特点与组成CGM4300

文***享 1年前 上传280   0

《windows编程实践》教学大纲

课程名称:windows编程实践课程编号:开课学院:计算机学院适用专业:计算机学院各专业学 分: 1.5 学 时: 56(其中讲课16,机时40) 先修课程:C/C++程序设计基础

王***朝 2年前 上传455   0

电子商务创业初级实践报告

电子商务创业初级实践报告  我们是x团队!虽然我们在第一阶段的比赛中有许多地方做的不足,有许多方面需要改进,还有许多东西要去学习去尝试……但我们不会因此而放弃的,最大的收获就是学会了坚持和不断尝试,所以我们在第二阶段的比赛中会积极地向优秀的团队学习,当然好的方面要我们会再接再厉,继续努力,因为x团队会在不断努力中渐渐成长。  我们的主要推广方案有博客推广、bbs推广。虽然看起来是那样简单

q***x 11年前 上传433   0

XX县实验初级中学学生资助工作计划

XX县实验初级中学学生资助工作计划全面贯彻教体局关于家庭经济困难学生资助的相关工作文件和意见,制定了学校资助工作计划,全面开展学年段资助工作。一、加大力度,认真做好资助政策的宣传建立健全学校学生资助政策体系,充分体现国家对学校家庭经济困难学生的关怀。通过各种渠道,切实抓好宣传工作,使广大师生都能了解资助政策体系,熟悉资助程序与颁发,确保学校学生资助工作顺利开展。二、完善制度,规范程序、确

小***文 3年前 上传526   0

2021年实验初级中学政教工作总结

 2021年实验初级中学政教工作总结撰写人:___________日 期:___________2021年实验初级中学政教工作总结一、取得的成绩:(一)、构建德育平台,全面加强学生的思想道德建设。重视德育工作是我校领导班子的一贯做法。学校的行政会成员,既是德育工作领导小组的成员,又是学校预防青少年犯罪工作领导小组成员,还是学校安全工作领导小组成员。在管理上属于四套班子一支队伍

s***7 10个月前 上传143   0

实验初级中学“县管校聘”工作实施方案

@县实验初级中学“县管校聘”工作实施方案(讨论稿)根据@政办发〔2018〕30号《@县人民政府办公室关于印发推进中小学教师 “县管校聘”管理改革工作的实施意见》文件精神,结合我校实际情况,制定@县实验初级中学“县管校聘”管理工作实施方案。一、指导思想以党的十九大和十八届三中、四中、五中、六中全会精神为指引,积极探索“总量控制、合理配置、按岗聘用、有序流动”的中小学人事管理体制,进一步深化我

笑***7 4年前 上传1921   0

实验初级中学2021年上半年工作总结

二○一九上半年,学校以党的十九大精神为指导,深刻领会习近平新时代中国特色社会主义思想,在县委、县政府的正确领导和县教育局的全力指导下,持续开展每月的“党员主题活动日”活动

奋***行 3年前 上传526   0

实验初级中学党支部深入学习实践科学发展观活动计划

实验初级中学党支部深入学习实践科学发展观活动计划 根据上级党委的部署,本党支部深入学习实践科学发展观活动列入第三批学习实践活动,现提出如下学习计划: 一、充分认识开展第三批学习实践活动的重要意义,切实增强责任感和使命感 开展深入学习实践科学发展观活动,是党的十七大作出的用中国特色社会主义理论体系武装全党的重大举措,是深入推进改革开放、推进经济社会又好又快发展、促进社会和谐稳定的迫切需要,是

4***M 14年前 上传16454   0

01-MySQL文档C文档API-编程实践

MySQL_C_API编程实践1MySQL C API helloWorld1.1有关mysqlclient库C APIs包含在mysqlclient库文件当中,与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询 1.2helloworld应用程序编写int main(){ int ret = NULL; MYSQL mysql; MYSQL *con

奋斗不止500年 3年前 上传357   0

linux与windows 编程区别

linux windows 编程的区别 如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix下面开发10年的程序员水平会差别很大。我写这篇文章并不是想贬低windows下面开发的人,做windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的感受,我最早开始学习编程也是在wi

g***7 7年前 上传2606   0

编程 汇编题目

一、选择题1. 已知指令CALL DWORD PTR [BX]执行前(SP)=108H, 则该指令执行后SP的内容为 ( )。A. 100H B. 104H C. 0FEH D. 106H2.在标志寄存器中,当方向标志DF=1时,每次执行MOVSB指令时使变址寄存器SI和DI( )。A. 加1 B. 加2 C.

小***库 4年前 上传705   0

软件编程实习总结

软件编程实习总结  实习时间:3月1日―――5月9日  实习地点:广州xx大学生实训基地  实训目标:  1.通过系统性的实训,熟练掌握java se、java ee知识体系,具备java开发经验;  2.了解企业软件开发流程规范,初步具备正确的软件开发编程思路,掌握软件开发的基本方法,养成规范化项目开发习惯;  3.以项目案例带动实训,以企业开发为基础,对参加实训学生进

米***尔 9年前 上传522   0

Scratch趣味编程

Scratch趣味编程随着社会信息化程度的不断提高,掌握运用计算机 解决问题的能力显得越来越重要,计算机程序设计是培 养学生运用计算机解决问题能力的重要途径,也是培养 学生计算思维与创新能力的载体。Scratch是麻省理工学院媒体实验室开发的计算机程 序设计语言,它以形象、直观的积木式指令代替了枯 燥、难记的代码指令,可以方便地创建交互式故事、动 画、游戏、音乐等丰富的程序作品,非常适合小

蓝郎梦 2年前 上传714   1

编程人员的质量感言

质  量  感  言   质量是社会生活中最常见的概念,是企业永恒的主题,关系到企业的生存与发展。做为加工中心的一名编程人员,深知这个岗位的重要性,图纸一但输入错误会对公司造成很大的损失,所以我在工作中首先要做到在绘制图形录入电脑时认真负责,并且在图纸输入完成后对图纸进行核对后再录入电脑,发现产品图纸和加工工艺有问题及时报告并联系有关技术人员解决。合理编制程序,优化机床的加工方法,利用套裁来

1***0 12年前 上传12718   0

实验室社会实践报告

实验室社会实践报告  范一  在分子生物学实验室为期两个月的实习使我受益匪浅,我不仅学习到了专业知识,更重要的是收获了经验与体会,这些使我一生受用不尽,记下来与大家共勉:  1.手脚勤快,热心帮助他人。初来匝道,不管是不是自己的份内之事,都应该用心去完成,也许自己累点,但你会收获很多,无论是知识与经验还是别人的称赞与认可。  2.多学多问,学会他人技能。学问学问,无问不成学。知识

天***3 11年前 上传386   0

网络编程实习报告

网络编程实习报告  [实习目的]   通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,并为自己能顺利与社会环境接轨做准备。[实习任务]Linux下网络服务器开发(基于C语言);本文总结了我对Linux下网络服务器模型的认识。[实习内容]一.循环服务器1.循环服务器在同一个时刻只可以响应一个客户端的请求,对多个客户程序的处理是采用循环的方式进行; 2. UDP循环服务器的实现非常

啊***复 9年前 上传525   0

CMM实用编程技术

CMM实用编程技术   1. 若图面各视图上均有尺寸需编程测量时,最好在每个视图上标示出坐标系,以利于判断工件在机台所处的位置   2. 在建立工件坐标系时,若无特别说明,工件坐标系应与仪器坐标系方向保持一致,以利于坐标值的检查   3. 在方便测量的情况下,工件在机台上的最好位置最好和图面上主要视图保持一致,这有利于快速准确采点   4. 在对所建立之坐标系命名时,最好按主,俯

z***0 9年前 上传7738   0

数控编程实习报告

数控编程实习报告  随着制造业的发展,机床是制造业的主要生产设备其发展也是日新月异。社会的进步,人们对各类产品的要求也越来越高,像汽车这样大批量的产品,也要求个性化。因此不能采用传统化的刚性生产线进行生产,还须考虑到适应的柔性。一些小产品其复杂要求和精度要求已经使通用机床难以胜任。在这样的情况下数控机床的出现满足了自动化程度高、柔性强、操作强度低,易于组成自动化生产系统的生产要求。   

s***r 10年前 上传586   0

《Java趣味编程100例》

第1章 变幻多姿的图表图表简洁直观,在各种场合得到广泛应用,给人以很强的视觉冲击,经常让人难以忘怀。我们的程序中如果能够灵活地应用图表,一定能给我们的程序增色不少。本章将带你进入变换多姿的图表世界,体会图表编程带来的乐趣。1.1 金字塔图案1.问题描述打印出金字塔图案,如图1.1所示。2.问题分析这个问题是一个很经典的循环应用的题目。我们都知道,打印输出的时候,都是从最左端输出,

雅***韵 2年前 上传820   0

数控编程说课

《数控加工技术》既是数控技术专业基于工作过程系统化设计的专业核心课程,又是数控工艺员,数控程序员,数控机床操作工职业资格考试的必修课程.下面我从课程设置,教学内容,教学设计,教学组织与实施,特色与创新五个方面向各位汇报本课程整体设计情况

k***1 6年前 上传14076   0

编程模拟练习

模拟练习 一、选择题  1、传输用的基带信号主要要求: A、原始消息代码必须编成适合于传输用的码型;  B、电波形应适合于基带系统的传输。 C、设备简单可靠。 D、A和B答案均正确。 2、传输用的基带信号对代码的要求: A、原始消息代码必须编成适合于传输用的码型。  B、电波形应适合于基带系统的传输。 C、设备简单可靠。 D、低误码率。 3、传输用的基带信号对所

小***4 10年前 上传7833   0

SimplIQ编程笔记

编程软件手册SimplIQ驱动描述 SimplIQ驱动器是复杂的、面向网络的、单轴数字驱动器,特色:1. 先进的控制算法,包括高阶过滤器和增益调度2. 一个复杂的参考生成算法, 其中包括绝对时间  内插运动,跟着ECAM辅助信号3. 同步网络操作能力4. CANopen标准一致性5. 用户友好的编程6. 先进的分析工具设置7. 内置auto-tuning设施8. 内置数据库

文***享 3年前 上传630   0

UG编程(完整版)

第二部分UG编程随堂讲义第1章 数控编程技术1.1 数控编程的基本过程数控编程是从零件设计得到合格的数控加工程序的全过程,其最主要的任务是通过计算得到加工走刀中的刀位点,即获得刀具运动的路径。对于多轴加工,还要给出刀轴的矢量。利用CAD软件进行零件设计,然后通过CAM软件获取设计信息,并进行数控编程基本过程和内容如图4-1所示。数控

雅***韵 3年前 上传750   0

初级药师-专业实践能力练习-药物治疗的基本过程

临床药物治疗学 第二节 药物治疗的基本过程一、A11、决定药时曲线水平位置高低的是A、患者肝脏功能 B、半衰期 C、给药次数 D、每日剂量 E、给药途径 2、制定给药方案时,如果有效血药浓度范围窄,且半衰期短,为了减少血药浓度的波动,需要A、首剂加倍 B、增加药物半衰期 C、增加给药次数 D、增加给药剂量 E、减少给药剂量 3、制定给药方案时首先要确定的是A、目标血

小***库 3年前 上传927   0

© 2006-2021 香当网   

  浙公网安备 33018302001162号
浙ICP备09019653号-34