Sun’s Blog-专注于阅读资料

本文主要介绍Sun’s Blog-专注于阅读资料 方法和在新技术下所面对的“挑战”,方便大家深入理解Sun’s Blog-专注于阅读资料 过程。本文也将分享Sun’s Blog-专注于阅读资料 所遇到的问题和应对策略,怎么解决怎么做的问题。
通过深入本文可以理解代码原理,进行代码文档的下载,也可以查看相应 Demo 部署效果。

@

目录
  • 集群启动顺序:
  • 关于安全模式的一些操作
  • 强调一下块(block)、副本数(replication)的概念

集群启动顺序:

  1. NameNode启动
    NameNode启动时,首先将镜像文件(Fsimage)载入内存,并执行编辑日志(Edits)中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的Fsimage文件和一个空的编辑日志。此时,NameNode开始监听DataNode请求。这个过程期间,NameNode一直运行在安全模式,即NameNode的文件系统对于客户端来说是只读的,并且是有限只读,即在没有启动DataNode的机器上的文件依旧不可读!
  2. DataNode启动
    系统中的数据块的位置并不是由NameNode维护的,而是以列表的形式存储在DataNode中。在系统的正常操作期间,NameNode会在内存中保留所有位置的映射信息。在安全模式下,各个DataNode会向NameNode发送最新的块列表信息,NameNode了解到足够多的块位置信息之后,即可退出安全模式。
  3. 安全模式退出判断
    如果满足“最小副本条件”,NameNode会在30秒钟之后就退出安全模式。所谓的最小副本条件指的是在整个文件系统中99.9%的块满足最小副本级别(默认值:dfs.replication.min=1)。在启动一个刚刚格式化的HDFS集群时,因为系统中还没有任何块,所以NameNode不会进入安全模式。

当NN中所保存的所有块的最小副本数(默认为1) / 块的总数 > 99.99%时,NN会自动离开安全模式!

关于安全模式的一些操作

集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。
(1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态[on/off])
(2)bin/hdfs dfsadmin -safemode enter (功能描述:进入安全模式)
(3)bin/hdfs dfsadmin -safemode leave (功能描述:离开安全模式)
(4)bin/hdfs dfsadmin -safemode wait (功能描述:输入写操作的命令,但不立即执行,而是放在缓存队列中,等待安全模式退出再依次执行)

强调一下块(block)副本数(replication)的概念

在hadoop2.x中,一个的默认大小是128M,至于是为什么请看我之前的文章HDFS的文件块大小,
而一个块的副本数默认是3
这些参数在hdfs-default.xml文件中有体现:

<property>   <name>dfs.blocksize</name>   <value>134217728</value>   <description>       The default block size for new files, in bytes.       You can use the following suffix (case insensitive):       k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such as 128k, 512m, 1g, etc.),       Or provide complete size in bytes (such as 134217728 for 128 MB).   </description> </property>  <property>   <name>dfs.replication</name>   <value>3</value>   <description>Default block replication.    The actual number of replications can be specified when the file is created.   The default is used if replication is not specified in create time.   </description> </property> 

知道了上面的概念,那么就考大家一个小问题:
面试题如果一个文件130M,将文件以块的方式分割,去存储,怎样实现?

实际存储        大小   副本 块A: 128M      128M  A0 A1 A2 块B: 2M        128M  B0 B1 B2 

很明显,130M的文件,128M的块是存不下的,还需要2M的空间,虽然只有2M,但还是得分配一个块。

再来一个进阶题:
题目: 块大小128m,副本数3份,一个文件260m,请问多少块,多少实际存储?
存储块数:260%128=2块…4M,所以需要3个块,一个块有3个副本,所以最后需要3*3=9块
实际存储:260m * 3 =780M

有人看到这儿就懵了,为什么是260*3呢?

分开算就一目了然了!
第一块有128M,第二块也是128M,第三块是剩下的4M,每一块有三个副本,那么:
128 * 3 + 128 * 3 + 4 * 3 = (128+128+4) * 3 = 260 * 3

Sun’s Blog-专注于阅读资料部分资料来自网络,侵权毕设源码联系删除

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » Sun’s Blog-专注于阅读资料

提供最优质的资源集合

立即查看 了解详情