第127讲:Hadoop集群管理之安全模式解析及动手实战学习笔记
hadoop在启动时namenode会把fsimage加载进内存,同时和edits内容合并,以此建立整个文件系统的元数据的镜像(内存级别),所以客户端可以通过namenode访问文件系统的信息。完成后变成一个新的fsimage,这个过程是namenode自已完成的,同时会建立一个新的edits。这时namenode需要开始监听rpc和http的请求,此时的状态就叫安全模式。安全模式时整个文件系统对客户端来说是可读的。实质上安全模式下可读的要求更严,它只是对文件系统的
元数据的操作会成功,例如查看文件系统上有哪些目录,目录下有哪些文件。但对读取文件只有在集群上的datanode上的块可用时才能实现。
系统中的block的位置不是由namenode维护的,而是以block list的形式存储在datanode中,系统正常工作时namenode会在内存中保存所有block的location的映射信息,在安全模式下,每个datanode会向namenode发送最新的block location list的最新信息,namenode知道块的信息后客户端就可以通过 namenode对文件系统进行操作。
namenode如果认为block具体位置的信息不够多的话,即datanode上的节点复本不够多时可能会启动对block的复制过程。实质上一般不会发生,因为在hadoop中一般配置3个复本,启动安全模式时(dfs.namenode.replication.min)默认最小复本满足1个就没有问题了。
要退出安全模式也需要配置:dfs.namenode.safemode.threshold-pct: 0.999f,即整个文件系统中最小的复本的个数为1满足99.9%时就可以退出安全模式。
hadoop刚刚format时因为文件系统中没有文件,这时不会进入安全模式。
hadoop dfsadmin -safemode get
可以获得是否是安全模式。
hadoop dfsadmin -safemode enter/leave 进入退出安全模式
在系统维护升级时需要进入安全模式。禁止对系统操作。
dfs.namenode.safemode.min.datanodes=0
最小datanode个数,即退出安全模式时活着的datanode的具体数量。
=0即退出安全模式时不考虑datanode个数。
如果这个值大于集群datanode个数,则集群一直处于安全模式。
dfs.namenode.safemode.extension=3000
满足了replication后再等待多长时间才退出安全模式。
以上内容是王家林老师DT大数据梦工厂《Hadoop深入浅出实战经典》第127讲的学习笔记。
王家林:Spark、Flink、Docker、Android技术中国区布道师。Spark亚太研究院院长和首席专家,DT大数据梦工厂创始人,Android软硬整合源码级专家,英语发音魔术师,健身狂热爱好者。
微信公众账号:DT_Spark
电话:18610086859
QQ:1740415547
微信号:18610086859
新浪微博:ilovepains
王家林的第一个中国梦:免费为全社会培养100万名优秀的大数据从业人员!
可以通过王家林老师的微信号18610086859发红包捐助,目前已经发布的王家林免费视频全集如下:
1,《大数据不眠夜:Spark内核天机解密(共100讲)》:http://pan.baidu.com/s/1eQsHZAq
2,《Hadoop深入浅出实战经典》 http://pan.baidu.com/s/1mgpfRPu
3,《Spark纯实战公益大讲坛》 http://pan.baidu.com/s/1jGpNGwu
4,《Scala深入浅出实战经典》 http://pan.baidu.com/s/1sjDWG25
5,《Docker公益大讲坛》 http://pan.baidu.com/s/1kTpL8UF
6,《Spark亚太研究院Spark公益大讲堂》 http://pan.baidu.com/s/1i30Ewsd
7,Spark实战高手之路全部六阶段视频:http://edu.51cto.com/pack/view/id-144.html
8,《大数据Spark企业级实战》购买http://item.jd.com/11622851.html
第127讲视频网站地址:
51CTO | http://edu.51cto.com/lesson/id-77868.html |