04 Hadoop思想与原理2

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

HADOOP创始人:

从与谷歌系统的关系,关键时间节点,1.x,2.x与3.x的区别,不同公司发行版本等方面来讲。

Hadoop是Apache旗下的一个用java语言实现的开源软件框架,是一个开发和运行处理大规模数据的软件平台。

Hadoop是Apache Lucene的创始人Doug Cutting创建的。起源于Nutch,Nutch的设计目标是构建一个大型的全网搜索引擎。在2004年的时候谷歌推出了MapReduce系统,同时,Nutch的开发人员以谷歌的技术为基础,开发实现了HDFS和MAPREDUCE,并从Nutch脱离成为独立的项目HADOOP,并开始了迅速的发展。hadoop的开发多基于谷歌的论文技术,因此hadoop的发展离不开谷歌。

版本不同:

1.X版本系列:第二代开源版本,主要修复了0.X版本的bug,现在已经被淘汰。

2.X版本系列:架构产生重大的变化,引入了yarn平台等特性,是现在的主流版本。

3.X版本系列:对HDFS、MapReduce、yarn都有较大的升级,增加了Ozone key-value存储。

发行版本主要分为免费开源版本和收费版本

Apache就是免费开源版本,靠全世界的优秀开源贡献者维护,更新较快。

HortonWorks,由雅虎主导的免费开源软件,有一整套的WEB管理界面。

Cloudera是收费版本。是美国一家大数据公司在apache的开源hadoop的版本上,修复了补丁,实现版本之间稳定运行

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

名称节点:目录、类型、权限等元数据  

名称节点(NameNode)负责管理分布式文件系统的命名空间(Namespace),保存了两个核心的数据结构,即FsImage和EditLog
FsImage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据。

数据节点:真实数据  数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表。

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

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

     

     

     

  •  

     

     

     

     

     

     

     

 

4.简述HBase与传统数据库的主要区别

 

传统数据库的特点:
1.数据是按行存储
2.没有建立索引的查询将消耗很大的IO
3.建立索引和视图需要花费一定的物理空间和时间资源
4.面对大量的查询,复杂的查询,数据库必须被大量膨胀才能满足性能需求
列式数据库的特点:
1.数据是按列存储,每行单独存放
2.数据就是索引。
3.只访问查询涉及的列,大量降低系统IO
4.每一列有一个线索来处理,支持查询的并发处理。
5.数据类型一致,数据特征相似,高效的压缩。

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

  • Master主服务器的功能
  • 答:A包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续数据访问过程 B可以帮助选举出一个Master作为集群的总管,并保证在任何时刻总有唯一一个Master在运行 C主要负责表和Region的管理工作 D是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求 
  • Region服务器的功能
  • 答:HRegion部分由很多的HRegion组成,存储的是实际的数据。每一个HRegion又由很多的Store组成,每一个Store存储的实际上是一个列簇(ColumnFamily)下的数据。
  • Zookeeper协同的功能
  • 答:ZooKeeper是一个经典的分布式数据一致性解决方案,致力于为分布式应用提供一个高性能、高可用,且具有严格顺序访问控制能力的分布式协调服务。
  • Client客户端的请求流程
  • 答:1. 客户端发起请求(Client Hello包) 2. 服务端收到请求,然后响应(Server Hello) 3. 客户端收到证书进行验证 4. 服务端接收随机数 
  • 四者之间的相系关系
  • 答:

    ①Hbase集群有两种服务器:一个Master服务器和多个RegionServer服务器;

    ②Master服务负责维护表结构信息和各种协调工作,比如建表、删表、移动region、合并等操作;

    ③客户端获取数据是由客户端直连RegionServer的,所以Master服务挂掉之后依然可以查询、存储、删除数据,就是不能建新表了;

    ④RegionServer非常依赖Zookeeper服务,Zookeeper管理Hbase所有的RegionServer信息,包括具体的数据段存放在那个RegionServer上;

    ⑤客户端每次与Hbase连接,其实都是先于Zookeeper通信,查询出哪个RegionServer需要连接,然后再连接RegionServer;客户端从Zookeeper获取了RegionServer的地址后,会直接从RegionServer获取数据;

    ⑥RegionServer保存的数据直接存储在Hadoop的HDFS上。
    总的来说 ,Client访问HBase上的数据的过程并不需要Master的参与,Master仅仅维护着table和region的元数据信息,负载很低。

  • 与HDFS的关联
  • 答:HDFS为HBase提供最终的底层数据存储服务,同时为HBase提供高可用的支持。

 

 

 

posted @ 2021-10-23 17:24  乌龙气泡水  阅读(59)  评论(0编辑  收藏  举报