免费舆情网站,遵义市双控体系建设网站,个人备案域名可以做哪些网站,第一代网站建设技术文章目录 #xff08;148#xff09;NN多目录配置#xff08;149#xff09;DataNode多目录配置及磁盘间数据平衡磁盘间数据均衡 参考文献 #xff08;148#xff09;NN多目录配置
NN多目录的意思是#xff0c;本地目录可以配置成多个#xff0c;且每个目录存放内容相… 文章目录 148NN多目录配置149DataNode多目录配置及磁盘间数据平衡磁盘间数据均衡 参考文献 148NN多目录配置
NN多目录的意思是本地目录可以配置成多个且每个目录存放内容相同这样的目的是增加可靠性。比如说下图这样 但其实生产中不常用哈生产中要增加NN的可靠性的话一般会开启NN的高可用即在不同节点上开启多个NN靠zookeeper来协调。
所以本节就了解一下即可。
配置的话首先在hdfs-site.xml文件中添加如下内容
propertynamedfs.namenode.name.dir/namevaluefile://${hadoop.tmp.dir}/dfs/name1,file://${hadoop.tmp.dir}/dfs/name2/value
/property这个配置也可以不分发每个节点单独调整因为怕每个节点目录结构不一样如果一样的话那就无所谓了。
停止集群myhadoop.sh stop删除三台节点的data和logs中所有数据。
[atguiguhadoop102 hadoop-3.1.3]$ rm -rf data/ logs/[atguiguhadoop103 hadoop-3.1.3]$ rm -rf data/ logs/[atguiguhadoop104 hadoop-3.1.3]$ rm -rf data/ logs/3格式化集群并启动。
[atguiguhadoop102 hadoop-3.1.3]$ bin/hdfs namenode -format[atguiguhadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh必须停止集群并重新格式化NameNode所以如果是在生产环境下集群一旦启动那就不要再修改NameNode了。
最后进入hadoop的data/dfs/目录下查看文件结构会发现现在多了一个文件夹
[atguiguhadoop102 dfs]$ ll
总用量 12
drwx------. 3 atguigu atguigu 4096 12月 11 08:03 data
drwxrwxr-x. 3 atguigu atguigu 4096 12月 11 08:03 name1
drwxrwxr-x. 3 atguigu atguigu 4096 12月 11 08:03 name2即name1和name2且两个文件夹里的内容一模一样。
149DataNode多目录配置及磁盘间数据平衡
不同于NN多目录在生产环境下DN的多目录配置就非常重要了。
DN可以配置多个目录且每个目录内存储的数据不一样。注意不是一个副本一个目录而是一个副本的数据可以分开存放在多个目录。 这个的好处其实很明显。
假设一个DataNode我最早只挂了一块10G的磁盘后来业务做大做强了数据膨胀到10G以上了这时候该怎么办
这时候就可以给这个DN多挂载一块磁盘然后通过DN的多目录把新磁盘设定称为DN的第二个目录新来的数据就可以继续往新磁盘放了。
老的数据不用大规模的动新的数据还有地方放这个的意义是很重要的。
具体配置首先在hdfs-site.xml文件中添加
propertynamedfs.datanode.data.dir/namevaluefile://${hadoop.tmp.dir}/dfs/data1,file://${hadoop.tmp.dir}/dfs/data2/value
/property可以视情况分发配置。然后重启集群以识别修改。
进到hadoop安装目录的data/dfs/目录下查看
[atguiguhadoop102 dfs]$ ll
总用量 12
drwx------. 3 atguigu atguigu 4096 4月 4 14:22 data1
drwx------. 3 atguigu atguigu 4096 4月 4 14:22 data2
drwxrwxr-x. 3 atguigu atguigu 4096 12月 11 08:03 name1
drwxrwxr-x. 3 atguigu atguigu 4096 12月 11 08:03 name2可以看到现在有两个data相关的文件夹了。
然后可以测试一下在102上向集群上传一个文件会发现上面两个文件夹里内容是不一样的其中一个有数另一个没有
[atguiguhadoop102 hadoop-3.1.3]$ hadoop fs -put wcinput/word.txt /就不赘述了。
磁盘间数据均衡
但是给DN配置了多目录之后又会引入一个新的问题就是新的目录它是空的那我如果想把老目录里的部分数据转移到新的目录让两个目录都不是那么空也都不是那么满那该怎么做呢
可以执行磁盘数据均衡命令对单节点内部的DN目录位于不同磁盘开始均衡。这是Hadoop3.x的新特性 (1) 首先生成均衡计划单磁盘的话不会生成计划
hdfs diskbalancer -plan hadoop1032执行均衡计划
hdfs diskbalancer -execute hadoop103.plan.json3查看当前均衡任务的执行情况
hdfs diskbalancer -query hadoop1034取消均衡任务
hdfs diskbalancer -cancel hadoop103.plan.json有兴趣可以拿虚拟机增加磁盘来试一下。
参考文献
【尚硅谷大数据Hadoop教程hadoop3.x搭建到集群调优百万播放】