当前位置: 首页 > news >正文

Hadoop3:NameNode和DataNode多目录配置(扩充磁盘的技术支持)

一、NameNode多目录

1、说明

NameNode多目录,需要在刚搭建Hadoop集群的时候,就配置好
因为,配置这个,需要格式化NameNode
所以,如果一开始没配置NameNode多目录,后面,就不要配置了。

2、配置

1、修改配置
hdfs-site.xml

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

其中,dfs.namenode.name.dir这个参数在core-site.xml文件中配置的
在这里插入图片描述
配置好后,保存,分发。

2、停掉Hadoop集群

 myhadoop stop

3、所有节点,删除/data、/log目录

cd /opt/module/hadoop-3.1.3/
rm -rf data/ logs/

4、格式化NameNode

hdfs namenode -format

此时,就已经有2个目录了
在这里插入图片描述
5、启动集群

 myhadoop start

3、验证

name1目录
在这里插入图片描述
name2目录
在这里插入图片描述
会发现,两个目录存储的内容完全一样

但是,本次实操,是在102一个节点上,所以,不是真正的高可用。
如果,102挂掉了,数据丢失。那么,依然无法恢复。
真正的高可用,是配置两个不同机器上的NameNode
这个,最多是,防止误删,提高了一点安全性。

如果,看到多目录,就明白是怎么回事了。

二、DataNode多目录(重要)

1、说明

DataNode可以配置成多个目录,每个目录存储的数据不一样(数据不是副本)
这个,为集群扩充磁盘提供了基础支持。

一般情况,服务器,挂载几块硬盘,就配置几个目录,对应关联。

2、配置

1、修改配置
hdfs-site.xml

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

这个配置,不一定要分发给所有的节点
要看每个节点的磁盘情况是否相同,来考虑是否分发。
我这里,三台机器情况完全相同,所以,分发到另外几台机器。

2、重启集群

myhadoop stop
myhadoop start

3、验证

三个节点都有两个目录。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

4、数据均衡(重要)

经过上面的配置,我们就可以挂载信申请的磁盘了。

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。
刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性

对应命令:
(1)生成均衡计划(我只有一块磁盘,不会生成计划

hdfs diskbalancer -plan hadoop103

(2)执行均衡计划

hdfs diskbalancer -execute hadoop103.plan.json

(3)查看当前均衡任务的执行情况

hdfs diskbalancer -query hadoop103

(4)取消均衡任务

hdfs diskbalancer -cancel hadoop103.plan.json

相关文章:

  • Android Studio gradle下载失败?!
  • 可视化作品集(11):节能环保能耗领域大展拳脚。
  • 相同含义但不同类型字段作为join条件时注意事项
  • 释放序列和同步
  • 数据库高级操作:分类汇总与排序
  • 心电信号降噪前处理(MATLAB R2018)
  • swift开发用Alamofire的post发送proto序列化消息
  • LLM 研究方向(一): LLM Prompts--p-tuning、LoRA
  • NLP - 基于bert预训练模型的文本多分类示例
  • 盲盒抽卡机小程序:抽卡机的多样化发展
  • OpenCV中使用Canny算法在图像中查找边缘
  • C++中的多重继承和虚继承:横向继承、纵向继承和联合继承;虚继承
  • 后端工作之一:CrapApi —— API接口管理系统部署
  • 【服务器】在Linux查看运行的Python程序,并找到特定的Python程序
  • HW期间——应急响应
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • chrome扩展demo1-小时钟
  • flask接收请求并推入栈
  • JAVA SE 6 GC调优笔记
  • js数组之filter
  • Map集合、散列表、红黑树介绍
  • MaxCompute访问TableStore(OTS) 数据
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • vue的全局变量和全局拦截请求器
  • Vue官网教程学习过程中值得记录的一些事情
  • web标准化(下)
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 分布式熔断降级平台aegis
  • 如何实现 font-size 的响应式
  • 入手阿里云新服务器的部署NODE
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小程序 setData 学问多
  • 正则与JS中的正则
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • # .NET Framework中使用命名管道进行进程间通信
  • #{} 和 ${}区别
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #Z0458. 树的中心2
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (Ruby)Ubuntu12.04安装Rails环境
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (论文阅读11/100)Fast R-CNN
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)为C# Windows服务添加安装程序
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .apk文件,IIS不支持下载解决
  • .jks文件(JAVA KeyStore)
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET gRPC 和RESTful简单对比