Hadoop系列九之HDFS安全模式和多目录配置

目录

  • 集群安全模式
  • NameNode多目录配置
  • DataNode多目录配置

1.集群安全模式
1.1 概述
(1)NameNode启动
NameNode启动时,首先将镜像文件(FsImage)载入内存,并执行编辑日志(Edits)中的各项操作。一旦在内存中成功建立文件系统问数据的映像,则创建一个新的FsImage文件和一个空的编辑日志。
此时,NameNode开始监听DataNode请求。这个过程期间,NameNode一直运行在安全模式,即NameNode的文件系统对于客户端来说是只读的。
(2)DataNode启动
系统中的数据块位置并不是由NameNode维护的,而是以块列表的形式存储在DataNode中。在系统正常操作期间,NameNode会在内存中保留所有块位置的映射信息。在安全模式下,各个DataNode会向NameNode发送最新的块列表信息,NameNode了解到足够多的块位置信息之后,即可高效运行文件系统。
(3)安全模式退出判断
如果满足“最小副本条件”,NameNode会在30秒钟之后就退出安全模式。所谓的最小副本条件指的是在整个文件系统中99.9%的块满足最小副本级别(默认值:dfs.replication.min=1)。在启动一个刚刚格式化的HDFS集群时,因为系统中还没有任何块,所以NameNode不会进入安全模式。
1.2 基本语法
集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。
(1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态)
(2)bin/hdfs dfsadmin -safemode enter (功能描述:进入安全模式状态)
(3)bin/hdfs dfsadmin -safemode leave (功能描述:离开安全模式状态)
(4)bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态)
1.3 示例
(1)查看当前模式

[JL@hadoop101 hadoop-3.1.3]$ hdfs dfsadmin -safemode get
Safe mode is OFF

(2)先进入安全模式

[JL@hadoop101 hadoop-3.1.3]$ bin/hdfs dfsadmin -safemode enter

(3)创建并执行下面的脚本
在/opt/module/hadoop-3.1.3路径上,编辑一个脚本safemode.sh

[JL@hadoop101 hadoop-3.1.3]$ touch safemode.sh
[JL@hadoop101 hadoop-3.1.3]$ vim safemode.sh
#!/bin/bash
hdfs dfsadmin -safemode wait
hdfs dfs -put /opt/module/hadoop-3.1.3/README.txt /
[JL@hadoop101 hadoop-3.1.3]$ chmod 777 safemode.sh
[JL@hadoop101 hadoop-3.1.3]$ ./safemode.sh 

(4)再打开一个窗口,执行

[JL@hadoop101 hadoop-3.1.3]$ bin/hdfs dfsadmin -safemode leave

(5)观察
a.再观察上一个窗口
Safe mode is OFF
b.HDFS集群上已经有上传的数据了。
2.NameNode多目录配置
NameNode的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性。
具体配置如下:
(1)修改hdfs-site.xml文件

<property>
    <name>dfs.namenode.name.dir</name>
<value>file:///${hadoop.tmp.dir}/name1,file:///${hadoop.tmp.dir}/name2</value>
</property>

(2)停止集群,删除data和logs中所有数据

[JL@hadoop101 hadoop-3.1.3]$ rm -rf data/ logs/
[JL@hadoop102 hadoop-3.1.3]$ rm -rf data/ logs/
[JL@hadoop103 hadoop-3.1.3]$ rm -rf data/ logs/

(3)格式化集群并启动

[JL@hadoop101 hadoop-3.1.3]$ bin/hdfs namenode –format
[JL@hadoop101 hadoop-3.1.3]$ sbin/start-dfs.sh

(4)查看结果

[JL@hadoop101 dfs]$ ll
总用量 12
drwx------. 3 JL JL 4096 12月 11 08:03 data
drwxrwxr-x. 3 JL JL 4096 12月 11 08:03 name1
drwxrwxr-x. 3 JL JL 4096 12月 11 08:03 name2

3.Datanode多目录配置
DataNode也可以配置成多个目录,每个目录存储的数据不一样。即:数据不是副本。
具体配置如下:
(1)在hdfs-site.xml中修改如下内容:

<property>
        <name>dfs.datanode.data.dir</name>
<value>file:///${hadoop.tmp.dir}/data1,file:///${hadoop.tmp.dir}/data2</value>
</property>

(2)停止集群,删除data和logs中所有数据。

[JL@hadoop101 hadoop-3.1.3]$ rm -rf data/ logs/
[JL@hadoop102 hadoop-3.1.3]$ rm -rf data/ logs/
[JL@hadoop103 hadoop-3.1.3]$ rm -rf data/ logs/

(3)格式化集群并启动。

[JL@hadoop101 hadoop-3.1.3]$ bin/hdfs namenode –format
[JL@hadoop101 hadoop-3.1.3]$ sbin/start-dfs.sh

(4)查看结果

[JL@hadoop101 dfs]$ ll
总用量 12
drwx------. 3 JL JL 4096 4月   4 14:22 data1
drwx------. 3 JL JL 4096 4月   4 14:22 data2
drwxrwxr-x. 3 JL JL 4096 12月 11 08:03 name1
drwxrwxr-x. 3 JL JL 4096 12月 11 08:03 name2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值