第四次作业

1.用图与自己的话,简要描述Hadoop起源与发展阶段。

Hadoop是道格·卡丁(Doug Cutting)创建的,Hadoop起源于开源网络搜索引擎Apache Nutch,后者本身也是Lucene项目的一部分。Nutch项目面世后,面对数据量巨大的网页显示出了架构的灵活性不够。当时正好借鉴了谷歌分布式文件系统,做出了自己的开源系统NDFS分布式文件系统。第二年谷歌又发表了论文介绍了MapReduce系统,Nutch开发人员也开发出了MapReduce系统。随后NDFS和MapReduce命名为Hadoop,成为了Apache顶级项目。

从Hadoop的发展历程来看,它的思想来自于google的三篇论文。

GFS:Google File System 分布式处理系统 ------》解决存储问题

Mapreduce:分布式计算模型 ------》对数据进行计算处理
BigTable:解决查询分布式存储文件慢的问题,把所有的数据存入一张表中,通过牺牲空间换取时间

 

 

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

在HDFS中,名称节点(NameNode)负责管理分布式文件系统的命名空间(Namespace),保存了两个核心的数据结构,即FsImage和EditLog
FsImage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据
操作日志文件EditLog中记录了所有针对文件的创建、删除、重命名等操作

 

 

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

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

 

 

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

 

 

 

  • Master主服务器的功能
  • 管理用户对Table表的增、删、改、查操作;
  • 管理HRegion服务器的负载均衡,调整HRegion分布; 

  • Region服务器的功能
  •  

     

  • Zookeeper协同的功能
  •  

     

  • Client客户端的请求流程
  • 客户端发起请求(Client Hello包) 

    a) 三次握手,建立TCP连接 

    b) 支持的协议版本(TLS/SSL) 

    c) 客户端生成的随机数client.random,后续用于生成“对话密钥” 

    d) 客户端支持的加密算法 

  • 四者之间的相系关系
  • 与HDFS的关联
  • HDFS是GFS的一种实现,他的完整名字是分布式文件系统,类似于FAT32,NTFS,是一种文件格式,是底层的,Hadoop HDFS为HBase提供了高可靠性的底层存储支持。

    HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统

 

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

 

 

 

 

 

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

 

 

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

2的34次方

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

 

 

 Client:用户编写的MapReduce程序通过Client提交到JobTracker;一个MapReduce程序对应若干个作业,而每个作业会被分解成若干个Map/Reduce任务

JobTracker:obTracker主要负责资源监控和作业调度。JobTracker监控所有TaskTracker与作业的健康状况,一旦发现失败情况后,其会将相应的任务转移到其他节点

TaskTracker:TaskTracker会周期性地通过Heartbeat将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker发送过来的命令并执行相应操作

Task:

Task分为Map Task和Reduce Task两种,均由TaskTracker启动。我们知道,HDFS以固定大小的block为基本单位存储数据,而对于MapReduce而言,其处理单位是split。split与block的对应关系如下图所示。split是一个逻辑概念,它只包含一些元数据信息,比如数据起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定。但需要注意的是,split的多少决定Map Task的数目,因为每个split会交由一个Map Task处理。

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

 

posted @ 2021-10-29 16:55  kray  阅读(105)  评论(0)    收藏  举报