1. 实验目的和要求

1.1 实验目的

通过实验掌握基本的MapReduce编程方法;
掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。

1.2 实验软硬件环境

操作系统:Linux(建议Ubuntu16.04)
Hadoop版本:2.7.1

1.3 实验要求

(一)编程实现文件合并和去重操作

对于两个输入文件,即文件A和文件B,请编写MapReduce程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新的输出文件C。下面是输入文件和输出文件的一个样例供参考。
输入文件A的样例如下:

20170101     x
20170102     y
20170103     x
20170104     y
20170105     z

20170106 x

输入文件B的样例如下:
20170101 y
20170102 y
20170103 x
20170104 z
20170105 y

根据输入文件A和B合并得到的输出文件C的样例如下:
20170101 x
20170101 y
20170102 y
20170103 x
20170104 y
20170104 z
20170105 y
20170105 z
20170106 x

在hdfs中创建input文件夹,创建f1,f2文件,上传文件到hdfs中input文件夹中,查看上传结果,

编译代码:

运行代码成功界面

查看是否存在输出文件夹和文件

对输出文件进行查看

实验代码:

(二)编写程序实现对输入文件的排序

现在有多个输入文件,每个文件中的每行内容均为一个整数。要求读取所有文件中的整数,进行升序排序后,输出到一个新的文件中,输出的数据格式为每行两个整数,第一个数字为第二个整数的排序位次,第二个整数为原待排列的整数。下面是输入文件和输出文件的一个样例供参考。
输入文件1的样例如下:
33
37
12
40

输入文件2的样例如下:
4
16
39
5

输入文件3的样例如下:
1
45
25

根据输入文件1、2和3得到的输出文件如下:
1 1
2 4
3 5
4 12
5 16
6 25
7 33
8 37
9 39
10 40
11 45

创建3个文件

在hdfs中创建input1文件夹,并把三个文件上传

对上传的3个文件进行查看

编译java代码

对hdfs中的文件进行查看

对输出文件进行查看

代码截图:

(三)对给定的表格进行信息挖掘

下面给出一个child-parent的表格,要求挖掘其中的父子辈关系,给出祖孙辈关系的表格。
输入文件内容如下:
child parent
Steven Lucy
Steven Jack
Jone Lucy
Jone Jack
Lucy Mary
Lucy Frank
Jack Alice
Jack Jesse
David Alice
David Jesse
Philip David
Philip Alma
Mark David
Mark Alma

输出文件内容如下:
grandchild grandparent
Steven Alice
Steven Jesse
Jone Alice
Jone Jesse
Steven Mary
Steven Frank
Jone Mary
Jone Frank
Philip Alice
Philip Jesse
Mark Alice
Mark Jesse
创建table文件及在hdfs中创建input2文件夹,并上传

查看input2文件夹

编译代码

查看输出文件夹是否存在

对输出文件进行查看

实验代码:

MapReduce初级编程实践相关推荐

  1. 实验5 MapReduce初级编程实践(Python实现)

    一.实验目的 通过实验掌握基本的 MapReduce 编程方法: 掌握用 MapReduce 解决一些常见数据处理问题的方法,包括数据合并.数据去重.数据排序和数据挖掘等. 二.实验平台 操作系统:U ...

  2. MapReduce 编程实践:统计对象中的某些属性

    文章目录 1. 生成数据 2. 编写实体类 3. Mapper类 4. Reducer类 5. Driver类 6. 运行 参考书:<Hadoop大数据原理与应用> 相关文章:MapRed ...

  3. MapReduce 编程实践

    文章目录 1. MapReduce 作业流程 2. 实践 2.1 启动 hadoop 2.2 创建 java 项目 2.3 MapReduce shell 2.4 MapReduce Web UI 3 ...

  4. Hadoop——实验七:MapReduce编程实践

    文章目录 一. 实验目的 二. 实验内容 三. 实验步骤及结果分析  1. 基于ubuntukylin14.04(7)版本,安装hadoop-eclipse-kepler-plugin-2.6.0.j ...

  5. 《深入理解大数据:大数据处理与编程实践》一一3.3 HDFS文件存储组织与读写...

    本节书摘来自华章计算机<深入理解大数据:大数据处理与编程实践>一书中的第3章,第3.3节,作者 主 编:黄宜华(南京大学)副主编:苗凯翔(英特尔公司),更多章节内容可以访问云栖社区&quo ...

  6. python创意小作品-[专题]在Python教学中应用turtle创意编程实践

    原标题:[专题]在Python教学中应用turtle创意编程实践 创意编程是用编程实现自己创意的过程.在2017年的信息技术新课程标准中,计算思维是信息技术的核心素养.计算思维是指利用计算机科学领域的 ...

  7. 《深入理解大数据:大数据处理与编程实践》一一1.2 大数据处理技术简介

    本节书摘来自华章计算机<深入理解大数据:大数据处理与编程实践>一书中的第1章,第1.2节,作者 主 编:黄宜华(南京大学)副主编:苗凯翔(英特尔公司),更多章节内容可以访问云栖社区&quo ...

  8. Storm之——流组件简单串行编程实践

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/78447229 Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象, ...

  9. UEFI开发探索100 – 《UEFI编程实践》发布啦

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) <UEFI编程实践>发布 1 内容简介 第一部分 UEFI环境搭建及UEFI应用构建 ...

最新文章

  1. 微信小程序时间戳转化为时间
  2. 基于通用权限管理系统实现的单点登录
  3. 如何通过 Serverless 轻松识别验证码?
  4. QWT中Qdial的入门介绍
  5. 【☘️C语言の单链表是否有环问题☘️】
  6. 商户网站使用第三方支付的大致原理和实现
  7. java hibernate4 学习心得
  8. Unity3d 代码修改并恢复鼠标的图标
  9. 一元一次方程用计算机怎么解,一元一次方程怎么解 [解一元一次方程的基本步骤]...
  10. 【一起入门NLP】中科院自然语言处理作业三:用BiLSTM+CRF实现中文命名实体识别(TensorFlow入门)【代码+报告】
  11. 杭州造云记 | 甲子光年
  12. C#开发实战视频教程_基于多线程C#开发QQ农场
  13. HTML+CSS+JS大作业:商城网购网站设计——淘宝1页
  14. win10安装Mysql8的两种方式(安装/卸载-图文教程)
  15. ValueError: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C
  16. Softer-NMS 论文笔记
  17. [知了开发]“知了”APP整体设计
  18. linux调用windows接口,想要打通Windows和Linux的任督二脉,少不了API这层功力
  19. matlab的整流信号,基于MATLAB的单相桥式整流电路研究
  20. 【读书笔记->统计学】11-02 总体和样本的估计-总体比例、样本比例、根据总体预测样本比例概念简介

热门文章

  1. matlab中ss函数_MATLAB中的S-Function的用法(C语言)
  2. python爬取链家房价消息_Python的scrapy之爬取链家网房价信息并保存到本地
  3. 关于samtools
  4. 判断所选的是否是合法的WORD文件
  5. 【23考研】计算机择校信息库-河南高校计算机相关专业22专业目录分类汇总(按专业课分类汇总)
  6. MMDet3D——报错解决:KeyError: ‘SparseConv2d is already registered in conv layer‘
  7. 调试并修理垂起固定翼(VTOL)
  8. jupyter(numpy)教程
  9. 报错:Unable to revive connection: http://elasticsearch:9200 或者NO living connection”,我的解决方案kibana
  10. 汉文SEO大牛教你如何创建网站地图-seo必修课