date: 2020-12-08title: HDFS中NameNode及DataNode的多目录配置 #标题
tags: HDFS #标签
categories: Hadoop # 分类
记录下HDFS中的namenode和datanode的多目录配置方式。
namenode配置多目录后每个目录下的文件及内容是一致的,增加了冗余性,提高可靠性;datanode配置多目录后,每个目录下的内容是不一样的,是为了提高磁盘读写速度以及增加磁盘空间。
配置NameNode多目录
多目录配置是为了增加集群的安全性,可以将第一个磁盘挂载到第一个目录上,第二个磁盘挂载到第二个目录上。这样当其中一块磁盘出现故障时,NameNode储存元数据也不会丢失。
$ pwd/apps/usr/hadoop-2.9.2$ vim etc/hadoop/hdfs-site.xml # 编辑此配置文件,写入以下内容,以便指定多目录<property><name>dfs.namenode.name.dir</name><value>file:///${hadoop.tmp.dir}/dfs/name,file:///data/dfs/name2</value></property># 注:指定的 /data/dfs/name2 目录无需提前创建。# 如果之前启动了hdfs,请先自行停止(在namenode上执行即可)$ stop-dfs.sh# 所有hadoop集群几点中都删除data和logs目录(相当于格式化集群,谨慎操作)$ rm -rf data/ logs/# 将修改后的文件分发至其他节点$ scp etc/hadoop/hdfs-site.xml 192.168.20.3:/apps/usr/hadoop-2.9.2/etc/hadoop/$ scp etc/hadoop/hdfs-site.xml 192.168.20.4:/apps/usr/hadoop-2.9.2/etc/hadoop/# 格式化namenode$ hdfs namenode -format......... #省略部分输出/current/fsimage.ckpt_0000000000000000000 of size 323 bytes saved in 0 seconds .20/12/08 06:28:38 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 020/12/08 06:28:38 INFO namenode.NameNode: SHUTDOWN_MSG:/************************************************************SHUTDOWN_MSG: Shutting down NameNode at hadoop01/192.168.20.2************************************************************/# 输出以上信息,表示格式化成功。# 至此,namenode的多目录配置完成,两个目录下存放的文件内容一致# 可通过比对md5值来判断$ md5sum /data/dfs/name2/current/fsimage_0000000000000000000105bac744cba907e19fee9638eb784ec /data/dfs/name2/current/fsimage_0000000000000000000$ md5sum data/tmp/dfs/name/current/fsimage_0000000000000000000105bac744cba907e19fee9638eb784ec data/tmp/dfs/name/current/fsimage_0000000000000000000# 确认无误后,启动hdfs(在namenode上执行即可)$ start-dfs.sh # 启动
配置dataNode多目录
DataNode配置多目录是因为一个目录下面挂的硬盘不够用,所以多加了几个目录。这里要和副本数区分开,副本数是配置hdfs中数据存放的份数,也就是备份数,防止数据丢失的。
$ pwd/apps/usr/hadoop-2.9.2$ vim etc/hadoop/hdfs-site.xml # 编辑此配置文件,写入以下内容,以便指定多目录<property><name>dfs.datanode.data.dir</name><value>file:///${hadoop.tmp.dir}/dfs/data1,file:///data/dfs/data2</value></property>
可以参考hadoop2.0的datanode多目录数据副本存放策略来了解datanode多目录副本存放策略。
