hdfs深入:03、hdfs的架构以及副本机制和block块存储

HDFS分布式文件系统设计目标

1、            硬件错误  由于集群很多时候由数量众多的廉价机组成,使得硬件错误成为常态

2、            数据流访问  所有应用以流的方式访问数据,设置之初便是为了用于批量的处理数据,而不是低延时的实时交互处理

3、            大数据集   典型的HDFS集群上面的一个文件是以G或者T数量级的,支持一个集群当中的文件数量达到千万数量级

4、            简单的相关模型  假定文件是一次写入,多次读取的操作

5、            移动计算比移动数据便宜   一个应用请求的计算,离它操作的数据越近,就越高效

6、            多种软硬件的可移植性

3、HDFS的来源

HDFS起源于Google的GFS论文(GFS,Mapreduce,BigTable为google的旧的三驾马车)

       发表于2003年10月

       HDFS是GFS的克隆版

Hadoop  Distributed  File  system

       易于扩展的分布式文件系统

扫描二维码关注公众号,回复: 6303622 查看本文章

       运行在大量普通廉价机器上,提供容错机制

       为大量用户提供性能不错的文件存取服务

4、HDFS的架构图之基础架构

 

1、NameNode是一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的名字空间(namespace)以及客户端对文件的访问

2、文件操作,namenode是负责文件元数据的操作,datanode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过Namenode,只询问它跟哪个dataNode联系,否则NameNode会成为系统的瓶颈

3、副本存放在哪些Datanode上由NameNode来控制,根据全局情况作出块放置决定,读取文件时NameNode尽量让用户先读取最近的副本,降低读取网络开销和读取延时

4、NameNode全权管理数据库的复制,它周期性的从集群中的每个DataNode接收心跳信号和状态报告,接收到心跳信号意味着DataNode节点工作正常,块状态报告包含了一个该DataNode上所有的数据列表

注:元数据不仅保存在内存中,还保存一份在磁盘中,防止意外断电等导致数据丢失。

5、hdfs的架构之文件的文件副本机制以及block块存储

block块的大小可以通过hdfs-site.xml当中的配置文件进行指定:

<property>

        <name>dfs.blocksize</name>

        <value>块大小 以Byte字节为单位</value>//只写数值就可以 默认:134217728B,即128MB

    </property>

<property>
  <name>dfs.replication</name>
  <value>3</value> //block的副本数量设置
</property>

5.1、抽象成数据块的好处

    1. 一个文件有可能大于集群中任意一个磁盘 
      10T*3/128 = xxx块 2T,2T,2T 文件方式存—–>多个block块,这些block块属于一个文件
    2. 使用块抽象而不是文件可以简化存储子系统
    3. 块非常适合用于数据备份进而提供数据容错能力和可用性

5.2、块缓存

block块缓存:可以将我们的block块缓存到内存当中,我们在执行一些MR计算的时候,可以直接从内存当中获取数据,比较快,特别适用于一些小表join大表的情况。

5.3、hdfs的文件权限验证

hdfs的权限验证:采用的是linux类似的权限校验机制,防止好人做错事,不能阻止坏人干干事,hdfs相信你告诉我你是谁,你就是谁。

猜你喜欢

转载自www.cnblogs.com/mediocreWorld/p/10946168.html