Map Reduce

Posted beiyi888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map Reduce相关的知识,希望对你有一定的参考价值。

MapReduce
客户端程序提交job之后,就会退出,那么如何判断mr程序有没有执行成功呢?
1、到yarn的网页上看 8088端口;
2、可以让客户端程序不退出,等待mr程序运行完成以后,再退出
 具体实现,将客户端程序中 job.submit() 换成 job.waitForCompletion(true)  //阻塞方法
 此方法,必须有return才会停止,客户端程序才会退出,
 在此之间客户端程序会在客户端的机器上启动一个服务监听一个端口
 然后与mrAppMaster进行通信,实时得到mr执行进度
 所以,此时也可以得到一个返回值,如果是true,证明mr程序运行成功,如果是false则执行失败
 boolean res = job.waitForCompletion(true);
 system.exit(res ? 0:1)
MR 程序的两种运行模式
分布式运行模式:必须在yarn平台上
核心特点:
 整个运行流程由MRAppMaster控制;
 每一个task(maptask,reducetask)以及MRAppMaster,都是以独立的进程在nodemanager所提供的容器中执行;
本地运行模式:在本地以单进程多线程方式运行
核心特点:整个运行流程由LocalJobRunner控制,每一个task(maptask,reducetask )都以线程的方式执行
决定mr程序运行模式的关键:
 jobclient端的参数:mapreduce.framework.name = local?yarn?
 也可以在jobclient所运行的机器的Hadoop配置文件(mapred-site.xml)中配置
注意:如果以分布式模式运行MR,则你所访问的文件系统一定是HDFS
 如果是本地文件系统运行MR,则既可以是HDFS,也可以是本地的文件系统























以上是关于Map Reduce的主要内容,如果未能解决你的问题,请参考以下文章

MIT6.824 - 01 MapReduce

关于reduce的理解

Python--高阶函数及其装饰器

2021年大数据常用语言Scala(二十七):函数式编程 聚合操作

Sass Maps的函数-map-values($map)map-merge($map1,$map2)

map和map0.5的区别