首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云+社区年度征文】一个hadoop的"helloword"

【云+社区年度征文】一个hadoop的"helloword"

原创
作者头像
三复
修改2020-12-24 09:28:21
5620
修改2020-12-24 09:28:21
举报

上一篇已经介绍了hadoop集群在centos和windows环境的搭建。这篇简单介绍在hadoop环境中简单计算示例。

hadoop由三个核心模块组成:HDFS分布式文件系统,MapReduce处理数据,yarn资源调度。

HDFS分布式文件系统

HDFS
HDFS

特征:1.典型的 Master/Slave 架构 2.分块存储(block机制) 3.命名空间(NameSpace) 4.NameNode元数据管理 5.DataNode数据存储 6.副本机制 7.⼀次写⼊,多次读出

MapReduce数据处理

map->reduce
map->reduce

Mapper

⽤户⾃定义⼀个Mapper类继承Hadoop的Mapper类

Mapper的输⼊数据是KV对的形式(类型可以⾃定义)

Map阶段的业务逻辑定义在map()⽅法中

Mapper的输出数据是KV对的形式(类型可以⾃定义)

注意:map()⽅法是对输⼊的⼀个KV对调⽤⼀次!!

Reduce

⽤户⾃定义Reducer类要继承Hadoop的Reducer类

Reducer的输⼊数据类型对应Mapper的输出数据类型(KV对)

Reducer的业务逻辑写在reduce()⽅法中

Reduce()⽅法是对相同K的⼀组KV对调⽤执⾏⼀次

Driver

创建提交YARN集群运⾏的Job对象,其中封装了MapReduce程序运⾏所需要的相关参数⼊输⼊数据路

径,输出数据路径等,也相当于是⼀个YARN集群的客户端,主要作⽤就是提交我们MapReduce程序运

⾏。

  1. 获取配置⽂件对象,获取job对象实例
  2. 指定程序jar的本地路径
  3. 指定Mapper/Reducer类
  4. 指定Mapper输出的kv数据类型
  5. 指定最终输出的kv数据类型
  6. 指定job处理的原始数据路径
  7. 指定job输出结果路径
  8. 提交作业

yarn资源调度

yarn资源调度
yarn资源调度

ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资

源分配与调度;

NodeManager(nm):单个节点上的资源管理、处理来⾃ResourceManager的命令、处理来⾃

ApplicationMaster的命令;

ApplicationMaster(am):数据切分、为应⽤程序申请资源,并分配给内部任务、任务监控与容错。

Container:对任务运⾏环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运

⾏相关的信息。

yarn有三种资源调度器FIFO、Capacity Scheduler和Fair Scheduler。Hadoop2.9.2默认的资源调度器是Capacity Scheduler。

MapReduce的一个作业用例

MapReduce编程

有三个⽂件fifile1、fifile2、fifile3,⽂件中每⼀⾏都是⼀个数字,如下所示。

输⼊⽂件

fifile1:

fifile2:

fifile3:

请编写 MapReduce 程序实现如下需求:

MapReduce 程序读取这三个⽂件,对三个⽂件中的数字进⾏整体升序排序,并输出到⼀个结果⽂件

中,结果⽂件中的每⼀⾏有两个数字(两个数字之间使⽤制表符分隔), 第⼀个数字代表排名,第⼆个

数字代表原始数据

期望输出

2

32

654

32

15

756

65223

5956

22

650

92

26

54

6

1 2

2 6

3 15

4 22

5 26

6 32

7 32

8 54

9 9210 650

11 654

12 756

13 5956

14 65223

实现代码:

mapper
mapper
reduce
reduce

有需要深入了解的小伙伴,私聊。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HDFS分布式文件系统
  • MapReduce数据处理
  • yarn资源调度
相关产品与服务
云 HDFS
云 HDFS(Cloud HDFS,CHDFS)为您提供标准 HDFS 访问协议,您无需更改现有代码,即可使用高可用、高可靠、多维度安全、分层命名空间的分布式文件系统。 只需几分钟,您就可以在云端创建和挂载 CHDFS,来实现您大数据存储需求。随着业务需求的变化,您可以实时扩展或缩减存储资源,CHDFS 存储空间无上限,满足您海量大数据存储与分析业务需求。此外,通过 CHDFS,您可以实现计算与存储分离,极大发挥计算资源灵活性,同时实现存储数据永久保存,降低您大数据分析资源成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档