TendernessAholic  

1.用图与自己的话,简要描述Hadoop起源与发展阶段。(作业3中剪过来)

Hadoop起源:Hadoop起源于Google的三大论文
GFS:Google的分布式文件系统Google File System
MapReduce:Google的MapReduce开源分布式并行计算框架
BigTable:一个大型的分布式数据库

演变关系
GFS—->HDFS
Google MapReduce—->Hadoop MapReduce
BigTable—->HBase

2.用图与自己的话,简要描述名称节点、第二名称节点、数据节点的主要功能及相互关系。

名称节点:负责管理分布式文件系统的命名空间,里面包含了两个核心的数据结构,即FsImage和EditLog。FsImage用户文件树以及所有的文件和文件夹的元数据。EfitLog记录的是文件的增删改查。

第二名称节点:完成EditLog合并到FsImage的过程,缩短合并的重启时间,其次作为“检查点”保存元数据的信息。

数据结点:数据存储访问功能,所有功能都是为了该目的而展开,如同机房多个数据节点共同承载该机房产生数据、同机房间数据节点的数据同步、不同机房间数据节点数据同步、等等都是为了数据能正常存储访问为目的。

 

 

 

 

 

 

3.分别从以下这些方面,梳理清楚HDFS的 结构与运行流程,以图的形式描述。

  • 客户端与HDFS
  • 客户端读
  • 客户端写
  • 数据结点与集群
  • 数据结点与名称结点
  • 名称结点与第二名称结点
  • 数据结点与数据结点
  • 数据冗余
  • 数据存取策略
  • 数据错误与恢复  

 

 

 

 

4.梳理HBase的结构与运行流程,以用图与自己的话进行简要描述,图中包括以下内容:

  • Master主服务器的功能
  • Region服务器的功能
  • Zookeeper协同的功能
  • Client客户端的请求流程
  • 四者之间的相系关系
  • 与HDFS的关联

 

5.理解并描述Hbase表与Region与HDFS的关系。

HBase通过三级索引结果实现region的寻址。我们逆序描述这个设计的思路,HBase的所有数据region元数据被存储在.META.表中,但是随着region增多,显然.META.会越大越大,最终也会分裂成多个region;-ROOT-表实现定位.META.表的region的位置,保存.META.表中所有region的元数据。而且-ROOT-不会分裂,只有一个region。Zookeeper会记录-ROOT-表的位置信息。

我们在正序描述寻址过程,Client通过ZK找到-ROOT-表的位置,通过-ROOT-表查找到.META.的位置,再从.META.查找用户Region的位置。可以实现最多三次跳转就可以定位任意一个region的效果。为了加快访问速度,.META.表的所有Region全部保存在内存中。客户端会将查询过的位置信息缓存起来,且缓存不会主动失效。

6.理解并描述Hbase的三级寻址。

假设我们要从Table2里面查询一条RowKey是RK10000的数据。那么我们应该遵循以下步骤:
1. 从.META.表里面查询哪个Region包含这条数据。
2. 获取管理这个Region的RegionServer地址。
3. 连接这个RegionServer, 查到这条数据。

7.假设.META.表的每行(一个映射条目)在内存中大约占用1KB,并且每个Region限制为2GB,通过HBase的三级寻址方式,理论上Hbase的数据表最大有多大?

三层结构可以保存的Region数目是(1024×1024MB/1KB) × (1024×1024MB/1KB) = 2的60次方个Region

8.MapReduce的架构,各部分的功能,以及和集群其他组件的关系。

  • 1)Client:
    用户编写的Mapreduce程序通过Client提交到JobTracker端;同时,用户可通过Client提供的一些接口查看作业运行状态。在Hadoop内部用“作业”(Job)表示Mapreduce程序。
  • 2)JobTracker:
    JobTracker主要负责资源监控和作业调度。JobTracker监控所有TaskTracker与作业的健康状况,一旦发现失败情况后,会将 相应的任务转移到其他节点;同时,JobTracker会跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度器,而调度器会在资源出现空闲时,选择合适的任务使用这些资源。
  • 3)TaskTracker:
    TaskTracker会周期性的通过Heartbeat将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker发送过来的命令并执行相应的操作(如启动新任务、杀死任务等)。TaskTracker使用“slot”等量划分本节点上的资源量。
  • 4)Task:
    Task分为Map Task和Reduce Task两种,均由TaskTracker启动。从上篇HDFS文档中知道,HDFS以固定大小的block为基本单位存储数据,而对于Mapreduce而言,其处理单位是split。split是一个逻辑概念,它只包含一些元数据信息,比如数据起始位置、数据长度、数据所在节点等

9.MapReduce的工作过程,用自己词频统计的例子,将split, map, partition,sort,spill,fetch,merge reduce整个过程梳理并用图形表达出来。

 

 

 

 

posted on 2021-10-22 09:40  TendernessAholic  阅读(50)  评论(0)    收藏  举报