大数据技术连载-03-1-大数据的存储-分布式文件系统Hadoop的HDFS的原理

03-HDFS-01-模块结构

 hadoop的存储方式,有点像scci硬盘,坏一个节点无所谓。随时插拔增减。

  

 

 

 

 

1.0 版本里,计算和资源调度在一个模块里。

 

2.0版本里:

       资源调度YARN,独立成一个模块。MapReduce是YARN支持的第一个计算框架,是批处理硬盘计算框架。除此之外,还支持批处理内存计算的Spark和流式计算的Storm。

       另外,HDFS也进行了优化。出现命名服务的分区联邦机制,NN Federation,高可用机制。

 

 

 

 

 

国内的星环最合适。

 

03-HDFS-02-的缺陷

       读取速度慢,高延迟。

       靠namenode索引元数据,如果大量小文件,会造成namenode的庞大。

       namenode是中心,成为性能瓶颈。

       1.0版本,namenode有单点故障风险。2.0中有了热备。

       只能添加,不能随意修改

 

03-HDFS-03-存储结构

 

       块

              每个块最少64M,比OS的块几十K大多了。

                     设计目的:

                            为了支持大规模数据存储。

                            为了降低寻址开销。namenode---->块---->数据。如果块小,则namenode会很大。

                     优点:

                            大文件分割成块之后,如果超大文件超出磁盘大小之后,就无法存储了。分割成块之后,可以分块存储。

                            可以按块进行备份。

      

03-HDFS-04-组件

(1)   名称节点

①       目录,元数据。

                     存储着文件的块在哪些机器上存储。

②       名称节点常驻内存。

             

 

 

 

 

③       名称节点的内部机制:

                    

 

 

 

 

              秉承数据仓库的概念,不修改,只增加。

              启动时,主名称节点,加载硬盘中的FsImage,加载硬盘中的EditLog,然后进行合并,生成新的FsImage,同时把EditiLog清空。EditiLog相当于缓存目的的工作目录,而且是只增加。

               当运行一段时间后,主名称节点的EditiLog可能会变大。此时,次名称节点开始拉取主名称节点的数据,并在自己里进行合并。合并完成之后,回传给主节点,主节点的EditLog又保持小型状态。

 

(2)   数据节点

              存储实际数据

 

03-HDFS-05-体系结构

 

 

 

 

(1)   访问路径

 

 

 

 

(2)   命名空间

 

 

 

 

03-HDFS-06-存储原理

       面向块

(1)   冗余策略

              默认,每个块都冗余保存3份。因此,可以做到并发3读。

              因为,HDFS的设计目的就是用廉价硬盘存储,因此需要很高的故障恢复能力。

(2)   写策略

 

 

 

(3)   读策略

              物理位置就近读取。

(4)   迁移策略

              数据节点失去心跳之后,HDFS系统会找到备份的数据,再复制一份出来。

              即便没有故障,HDFS系统也会根据负载压力的变化进行数据节点的自动复制迁移。

(5)   数据校验策略

              客户端读取一个块之后,会生成新的校验码,与存储的校验码比较。

             

 

posted @ 2021-02-25 20:12  从程序员到CTO  阅读(30)  评论(0)    收藏  举报
交流加我QQ:39667545