云小课|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”。
登录客户端服务器,进入客户端目录。
执行以下命令提交任务。
执行结果显示“Job xxx completed successfully”表示执行成功。
执行以下命令,查看“/tmp/teragen”路径下文件生成成功。
使用业务用户登录 FusionInsight Manager 界面,进入 Yarn 服务概览页面,单击“ResourceManager(主机名,主)”,在 Yarn 的原生界面,也可以查看该作业的详细信息。
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/c8fb8d3f089393661ae522e8e】。文章转载请联系作者。
评论