当前位置:   article > 正文

Mapreduce阶段性复习

Mapreduce阶段性复习

1. 什么是分布式并行编程?并行和并发分别的定义?

  • 分布式并行编程:分布式程序运行在大规模计算机集群上,并行执行大规模数据处理任务,而多台计算机同时运行相关程序
  • 并行:不同的代码同时执行
  • 并发:不同的代码交替执行

2.什么是Map,什么是Reduce?Map函数的输入和输出?Reduce函数的输入和输出?

  • Map: 映射
  • Reduce: 归约
  • Map函数:输入一个键值对,输出一组中间键值对
  • Reduce函数:输入一个键以及相关的一组值,输出另一个键值对

3.解释“计算向数据靠拢”

将要处理的数据块找到,然后找到离它最近的Map机器将Map函数发送到该数据节点,做Map运算

4.解释“数据向计算靠拢”:

先选择一个计算机作为数据处理的节点,然后把负责处理数据的程序放到该计算机节点上运行(拉取数据)

5.Shuffle的具体过程?

  • Map端:
  • 从HDFS中取得数据,然后进行分片,然后再将每个分片作为Map函数的输入(每个分片对应一个相应Map任务,它们之间各干各的)
  • 进入到Map函数中,被处理之后,从一个键值对,变成了一堆键值对,这一堆键值对会先被写入缓存中
  • 在缓存中积累一定数量的Map输出结果后再一次性批量写入磁盘(缓存满时,会进行溢写操作)
  • Reduce端:
    从Map机器领回属于自己处理的数据,然后对这些数据也进行一个归并,然后将这些归并之后的数据交给Reduce机器,用里面的Reduce函数进行处理,得到最终的结果,并将结果存储到HDFS中

6.Mapreduce的体系结构包含哪些组件?它们分别的作用是什么?

  • Client(客服端):
  • 用户编写的MapReduce程序通过Client提交到JobTracker端
  • 用户可通过Client提供的一些接口查看作业的运行状态
  • JobTracker(作业跟踪器):
    主要负责资源监控和作业调度,监控所有TaskTracker与作业job的健康状况。
  • Task Scheduler(任务调度器):
    负责具体的任务调度
  • TaskTracker(任务追踪器):
  • 是JobTracker和Task之间的桥梁
  • 从JobTracker接收并执行各种命令
  • 将本地节点上各个任务的状态通过心跳机制周期性汇报给JobTracker
  • Task:
    在hadoop中每个应用程序被表示成一个作业(Job),每个作业又被分成多个任务(Task)

7. Tasktracker在汇报心跳信息的时候,需要汇报自己的资源使用情况,它是怎么评估,衡量或者计算自己的资源使用情况的?

  • TaskTracker 使用 slot(槽)来衡量某个节点的资源的容量
  • TaskTracker将本节点上所有的内存和CPU之类的计算资源做一个统计,而slot会等量划分这些资源,从而得到一个自己所拥有的slots总量,这就是资源使用情况(slot的数量)

8.完整的描述MapReuce工作流程?

  • 从HDFS中取得数据,然后进行分片,然后再将每个分片作为Map任务的输入
  • 数据进入到Map函数中,被处理之后,从一个键值对,变成了一堆键值对,这一堆键值对会先被写入缓存中,然后做Map端的Shuffle过程进行分区,排序,归并,然后溢写到磁盘中
  • 溢写到磁盘中的数据,已经排好序,这些数据需要发送到Reduce机器上去完成Reduce的过程
  • Reduce机器会将属于它的那个分区的数据,取回到自己的机器上,然后经过Reduce函数的处理之后,写入到HDFS中,至此,整个MapReduce应用程序的执行过程结束
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/701988
推荐阅读
相关标签
  

闽ICP备14008679号