MapReduce架构,shuffle,mapred,hdfs读流程

MapReduce运行模式如下
在这里插入图片描述
主要分为map,reduce,shuffle几个步骤:

map相当于给数据作用一个规则,取得作用规则后数据的映射,例如:

Map()   映射  
a xyz   -> (x,1)(y,1)(z,1)   映射成key,value的形式
b xxyyz
c kkkkkkkkzzzzz
d kkxx

shuffle相当于洗牌,归类

 a (x,1)(x,1)...   把所有x都归在a下面
 b (y,1)(y,1)...
 ...

reduce 做最终归约

a xxxxx 5
b yyy 3
c zzzzzzz 7
d kkkkkkkkkk 10

关于详细讲解:http://blog.itpub.net/30089851/viewspace-2095837/

mapreduce指令其实不常用,可以了解一下mapred这个指令

MapReduce架构

MR提交到Yarn的工作流程就是Yarn的架构设计

在这里插入图片描述
1.用户向Yarn的RM提交应用程序,其中包括
ApplicationMaster程序(就是MR程序),启动ApplicationMaster命令等,Application Manager是程序管理

2.RM首先为该app程序分配第一个container容器,并与对应的NM通信,要求NM在这个Container中启动应用程序的application master(程序代码这些)

3.App master首先向Apps manager注册,这样的话,我们就可以通过web 8088,查看应用程序的运行状态,且监控它的运行状态

4.ApplicationMaster向Resource Scheduler申请和领取资源

5.一旦ApplicationMaster申请到资源后,便与对应的NM通信,要求它启动任务

6.NM节点启动container容器,运行task任务,注意map和reduce不能再一个container容器里同时运行

7.各个容器的任务,通过rpc向app master汇报自己的状态和进度,以让APP master随时掌握各个任务的运行状态,从而在任务失败时 重启任务。
那么用户可以通过web界面实时查看应用的当前运行状态

8.app运行完成后,app master向 apps manager注销并关闭

HDFS读流程

在这里插入图片描述
1.client通过分布式FileSystem.open(path)方法,去与NN进行RPC通信,NN会校验是否存在 权限是否OK。
2.校验完成后,返回文件的部分或全部的block列表(其实就是返回FSDataInputStream对象)
3.Client调用FSDataInputStream对象的read()方法
a.去与第一个块的最近的datanode进行read,读取完成后,会校验,假如OK,会关闭与当前的dn的通信。
假设check fail,会记录失败的块+DN信息,下次就不会读取了,那么会去这个块的第二个DN地址读取

b.然后读取第二个块的最近的datanode,check后,会关闭与DN的通信
c.假设block列表读取完了,文件还没结束,就继续读取下一批次的block的列表

4.Client调用FSDataInputStream.close(),关闭输入流

另附hadoop目录结构

[hadoop@hadoop002 hadoop-2.6.0-cdh5.7.0]$ ll
total 88
drwxr-xr-x  2 hadoop hadoop  4096 Mar 24  2016 bin   命令
drwxr-xr-x  2 hadoop hadoop  4096 Mar 24  2016 bin-mapreduce1
drwxr-xr-x  3 hadoop hadoop  4096 Mar 24  2016 cloudera
drwxr-xr-x  6 hadoop hadoop  4096 Mar 24  2016 etc   配置  config conf
drwxr-xr-x  5 hadoop hadoop  4096 Mar 24  2016 examples
drwxr-xr-x  3 hadoop hadoop  4096 Mar 24  2016 examples-mapreduce1
drwxr-xr-x  2 hadoop hadoop  4096 Mar 24  2016 include
-rw-rw-r--  1 hadoop hadoop     4 Oct 10 22:02 jepson.log
drwxr-xr-x  3 hadoop hadoop  4096 Mar 24  2016 lib  jar包
drwxr-xr-x  2 hadoop hadoop  4096 Mar 24  2016 libexec
-rw-r--r--  1 hadoop hadoop 17087 Mar 24  2016 LICENSE.txt
drwxrwxr-x  3 hadoop hadoop  4096 Oct 10 22:34 logs
-rw-r--r--  1 hadoop hadoop   101 Mar 24  2016 NOTICE.txt
drwxrwxr-x  2 hadoop hadoop  4096 Sep 26 21:48 output
-rw-r--r--  1 hadoop hadoop  1366 Mar 24  2016 README.txt
drwxr-xr-x  3 hadoop hadoop  4096 Mar 24  2016 sbin    启动停止脚步
drwxr-xr-x  4 hadoop hadoop  4096 Mar 24  2016 share
drwxr-xr-x 17 hadoop hadoop  4096 Mar 24  2016 src

猜你喜欢

转载自blog.csdn.net/qq_36459386/article/details/83755695