写点什么

云小课|MRS 基础原理之 MapReduce 介绍

  • 2022-11-01
    中国香港
  • 本文字数:2211 字

    阅读完需:约 7 分钟

云小课|MRS基础原理之MapReduce介绍

本文分享自华为云社区《【云小课】EI第42课 MRS基础原理之Mapreduce介绍》,作者: Hello EI。



MapReduce 是 Hadoop 的核心,是 Google 提出的一个软件架构,用于大规模数据集(大于 1TB)的并行运算。概念“Map(映射)”和“Reduce(化简)”,及他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。



MapReduce 是面向大数据并行处理的计算模型、框架和平台。当前的软件实现是指定一个 Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的 Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。



MapReduce 是用于并行处理大数据集的软件框架。MapReduce 的根源是函数性编程中的 map 和 reduce 函数。Map 函数接受一组数据并将其转换为一个键/值对列表,输入域中的每个元素对应一个键/值对。


Reduce 函数接受 Map 函数生成的列表,然后根据它们的键缩小键/值对列表。MapReduce 起到了将大事务分散到不同设备处理的能力,这样原本必须用单台较强服务器才能运行的任务,在分布式环境下也能完成。

MapReduce 结构


MapReduce 通过实现 YARN 的 Client 和 ApplicationMaster 接口集成到 YARN 中,利用 YARN 申请计算所需资源。



  • HDFS 是 Hadoop 分布式文件系统,具有高容错和高吞吐量的特性,可以部署在价格低廉的硬件上,存储应用程序的数据,适合有超大数据集的应用程序。

  • 而 MapReduce 是一种编程模型,用于大数据集(大于 1TB)的并行运算。在 MapReduce 程序中计算的数据可以来自多个数据源,如 Local FileSystem、HDFS、数据库等。最常用的是 HDFS,可以利用 HDFS 的高吞吐性能读取大规模的数据进行计算。同时在计算完成后,也可以将数据存储到 HDFS。

  • MapReduce 是运行在 YARN 之上的一个批处理的计算框架。MRv1 是 Hadoop 1.0 中的 MapReduce 实现,它由编程模型(新旧编程接口)、运行时环境(由 JobTracker 和 TaskTracker 组成)和数据处理引擎(MapTask 和 ReduceTask)三部分组成。该框架在扩展性、容错性(JobTracker 单点)和多框架支持(仅支持 MapReduce 一种计算框架)等方面存在不足。MRv2 是 Hadoop 2.0 中的 MapReduce 实现,它在源码级重用了 MRv1 的编程模型和数据处理引擎实现,但运行时环境由 YARN 的 ResourceManager 和 ApplicationMaster 组成。其中 ResourceManager 是一个全新的资源管理系统,而 ApplicationMaster 则负责 MapReduce 作业的数据切分、任务划分、资源申请和任务调度与容错等工作。

如何在 MRS 集群中提交 MapReduce 作业


应用开发完成后,用户可通过 MRS 云服务管理控制台直接提交 Mapreduce 作业,也可以通过集群客户端提交。


首先参考创建集群购买一个 MRS 集群,例如购买 MRS 3.1.0 版本集群,该集群已开启 Kerberos 认证。

通过界面提交 MapReduce 作业


  • 登录 MRS 管理控制台。

  • 选择“集群列表 > 现有集群”,单击集群名称,进入集群信息页面。

  • 在“概览”页签的基本信息区域,单击“IAM 用户同步”右侧的“同步”进行 IAM 用户同步。

  • 单击“作业管理”,进入“作业管理”页签。单击“添加”,进入“添加作业”页面。



  • 作业类型:MapReduce 作业名称:test01 执行程序路径:单击“HDFS”,并选择待执行的 jar 文件。例如:hdfs://hacluster/tmp/hadoop-mapreduce-examples-xxx.jar (此处以 hadoop example 程序为例,已提前将 jar 包上传至 HDFS)执行程序参数:teragen 9999999 /tmp/teragen (表示随机生成 9999999 行的数据,并将执行结果放置在“/tmp/teragen”路径下)

  • 确认作业配置信息,单击“确定”,完成作业的新增,等待执行结果变为“成功”。



  • 选择“文件管理 > HDFS 文件列表”,在“/tmp/teragen”路径下查看到新生成的文件。


通过客户端 CLI 提交作业


我们也可以通过集群的客户端,以命令行的形式来提交作业。


安装集群客户端,可参考安装客户端,例如客户端安装目录为:“/opt/client”。


登录客户端服务器,进入客户端目录。


cd /opt/clientsource bigdata_envkinit 集群业务用户
复制代码


执行以下命令提交任务。


yarn jar HDFS/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar teragen 9999999 /tmp/teragen
复制代码


执行结果显示“Job xxx completed successfully”表示执行成功。


...2022-05-26 19:16:02,274 INFO mapreduce.Job: Job job_1653461199536_0001 running in uber mode : false2022-05-26 19:16:02,275 INFO mapreduce.Job:  map 0% reduce 0%2022-05-26 19:16:14,453 INFO mapreduce.Job:  map 50% reduce 0%2022-05-26 19:16:16,471 INFO mapreduce.Job:  map 100% reduce 0%2022-05-26 19:16:16,482 INFO mapreduce.Job: Job job_1653461199536_0001 completed successfully2022-05-26 19:16:16,601 INFO mapreduce.Job: Counters: 33	File System Counters		FILE: Number of bytes read=0		FILE: Number of bytes written=587030		FILE: Number of read operations=0...
复制代码


执行以下命令,查看“/tmp/teragen”路径下文件生成成功。


hdfs dfs -ls /tmp/teragen
复制代码


Found 3 items-rw-r--r--   3 developuser hadoop          0 2022-05-26 19:16 /tmp/teragen/_SUCCESS-rw-r--r--   3 developuser hadoop     500000 2022-05-26 19:16 /tmp/teragen/part-m-00000-rw-r--r--   3 developuser hadoop     499900 2022-05-26 19:16 /tmp/teragen/part-m-00001
复制代码


使用业务用户登录 FusionInsight Manager 界面,进入 Yarn 服务概览页面,单击“ResourceManager(主机名,主)”,在 Yarn 的原生界面,也可以查看该作业的详细信息。



点击关注,第一时间了解华为云新鲜技术~


发布于: 刚刚阅读数: 4
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
云小课|MRS基础原理之MapReduce介绍_大数据_华为云开发者联盟_InfoQ写作社区