iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >HDFS免重启挂载新磁盘
  • 823
分享到

HDFS免重启挂载新磁盘

2024-04-02 19:04:59 823人浏览 安东尼
摘要

在生产环境中,集群节点磁盘大小不同,其使用率也会不同,hdfs虽有均衡策略,但也会有数据不平衡的情况,有些节点磁盘就会被打满,然后这个节点就不健康了(Unhealthy nodes)

在生产环境中,集群节点磁盘大小不同,其使用率也会不同,hdfs虽有均衡策略,但也会有数据不平衡的情况,有些节点磁盘就会被打满,然后这个节点就不健康了(Unhealthy nodes),Yarn的磁盘阈值检查(yarn.nodemanager.disk-health-checker.min-healthy-disks),默认是90%,超过这个值就会不健康,集群有个节点不健康,就会导致任务运行缓慢,之后任务再挤压,Yarn资源被集中占用,最终影响上层服务。

问题

  • 磁盘空间不足,待扩容,可动态增删磁盘

  • yarn资源不足,待优化,可动态调整

本篇内容只添加新磁盘,yarn资源优化我们在另一篇文章再专门详解。

官方说明

官方文档:DataNode Hot Swap Drive

DataNode Hot Swap Drive

Datanode supports hot swappable drives. The user can add or replace HDFS data volumes without shutting down the DataNode. The following briefly describes the typical hot swapping drive procedure:

  • If there are new storage directories, the user should fORMat them and mount them appropriately.

  • The user updates the DataNode configuratiodfs.datanode.data.dir to reflect the data volume directories that will be actively in use.

  • The user runs dfsadmin -reconfig datanode HOST:PORT start to start the reconfiguration process. The user can use dfsadmin -reconfig datanode HOST:PORT status to query the running status of the reconfiguration task.

  • Once the reconfiguration task has completed, the user can safely umount the removed data volume directories and physically remove the disks.

经过谷歌翻译如下:

DataNode 热插拔驱动器

Datanode 支持热插拔驱动器。用户可以在不关闭 DataNode 的情况下添加或替换 HDFS 数据卷。下面简要介绍典型的热插拔驱动器过程:

  • 如果有新的存储目录,用户应该格式化它们并适当地挂载它们。

  • 用户更新 DataNode 配置dfs.datanode.data.dir 以反映将被积极使用的数据卷目录。

  • 用户运行dfsadmin -reconfig datanode HOST:PORT start来启动重新配置过程。用户可以使用 dfsadmin -reconfig datanode HOST:PORT status 查询重配置任务的运行状态。

  • 重新配置任务完成后,用户可以安全地卸载已移除的数据卷目录并物理移除磁盘。

我们先说添加新的磁盘,大意就是不需要重启任何节点,在需要添加磁盘的节点上,添加好磁盘,这个需要运维操作,就是挂载一个新目录,文档中是说要配置DataNode的目录,这里我们建议加上NameNode的目录dfs.namenode.name.dir,然后再执行一个使配置生效的命令,最后查看配置状态。

具体操作

这里假设已有集群,需要加磁盘的节点为node2。运维也已经帮我们挂载好磁盘,新磁盘目录为/data2

第一步:新增目录

在node2上添加新目录,数据目录和元数据目录

mkdir -p /data2/soft/hadoop/tmp/dfs/data

mkdir -p /data2/soft/hadoop/tmp/dfs/name

第二步:修改配置

修改节点node2的配置文件hdfs-site.xml,主要两个属性

修改前

<!--指定hdfs中namenode的存储位置-->
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/soft/hadoop/tmp/dfs/name</value>
</property>
<!--指定hdfs中datanode的存储位置-->
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/soft/hadoop/tmp/dfs/data</value>
</property>

修改后

<!--指定hdfs中namenode的存储位置-->
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/soft/hadoop/tmp/dfs/name,/data2/soft/hadoop/tmp/dfs/name</value>
</property>
<!--指定hdfs中datanode的存储位置-->
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/soft/hadoop/tmp/dfs/data,/data2/soft/hadoop/tmp/dfs/data</value>
</property>

第三步:使配置生效

重新配置DataNode的配置,使配置生效。

hdfs dfsadmin -reconfig datanode node2:50020 start

hdfs dfsadmin -reconfig datanode node2:50020 status

第四步:平衡数据

HDFS数据本身并不总是均匀的放置在DataNode中,在添加新磁盘后,我们需要重新平衡下数据,HDFS为我们提供了一个工具,可以分析数据块放的位置和跨 DataNode 重新平衡数据:balancer

官方文档:hdfs balancer

hdfs balancer
    [-threshold <threshold>]:磁盘容量百分百,判断集群是否平衡的目标参数,每一个 datanode 存储使用率和集群总存储使用率的差值都应该小于这个阀值,越小越平衡,默认10,越大平衡越快。
    [-policy <policy>]:datanode(默认):如果每个数据节点都是平衡的,则集群是平衡的。blockpool:如果每个数据节点中的每个块池都是平衡的,则集群是平衡的。
    [-exclude [-f <hosts-file> | <comma-separated list of hosts>]]:将指定的数据节点排除在平衡器的平衡之外。
    [-include [-f <hosts-file> | <comma-separated list of hosts>]]:仅包括要由平衡器平衡的指定数据节点。
    [-idleiterations <idleiterations>]:rebalanecing server启动的线程数,默认5。

平衡前操作

在平衡时受带宽影响,每个数据节点每秒使用的最大字节数是有限的,所以我们先临时设置这个值,此值会覆盖hdfs-site.xml中dfs.datanode.balance.bandwidthPerSec的值,默认是1M,本操作命令不会持久,命令如下:

hdfs dfsadmin -setBalancerBandwidth 104857600

其他值:1024*1024=1M(1048576),52428800=50M,104857600=100M

开始平衡

本次执行平衡命令,磁盘平衡目标数为20 nohup hdfs balancer -threshold 20 > balancer.log &

其他平衡命令

平衡所有节点 nohup hdfs balancer > balancer.log &

平衡指定节点,磁盘平衡目标数为10 nohup hdfs balancer -include node7,node9,node10,node11 -threshold 10 > balancer.log &

平衡指定节点,磁盘平衡目标数,启动线程数为10 nohup hdfs balancer -include node7,node9,node10,node11 -threshold 10 -idleiterations 10 > balancer.log &

注(可选):一般在平衡时,可以先停止存储比较高的节点上的NodeManager,这样在该节点上就不会受本地NodeManager落数据到本地,使得本地存储迅速增加的影响。

yarn-daemon.sh stop nodemanager yarn-daemon.sh start nodemanager

更多关于HDFS免重启挂载新磁盘的文章请查看下面的相关链接

--结束END--

本文标题: HDFS免重启挂载新磁盘

本文链接: https://www.lsjlt.com/news/145129.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HDFS免重启挂载新磁盘
    在生产环境中,集群节点磁盘大小不同,其使用率也会不同,HDFS虽有均衡策略,但也会有数据不平衡的情况,有些节点磁盘就会被打满,然后这个节点就不健康了(Unhealthy Nodes)...
    99+
    2024-04-02
  • HDFS免重启挂载新磁盘的方法
    本篇内容主要讲解“HDFS免重启挂载新磁盘的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HDFS免重启挂载新磁盘的方法”吧!在生产环境中,集群节点磁盘大小不同,其使用率也会不同,HDFS虽...
    99+
    2023-06-29
  • CentOS磁盘挂载
    在购买云服务的时候,一般都会自带一块40G的系统盘,然后自己在选购数据盘,如果是windows系统,购买的数据盘会作为一个分区存在,比如D盘、E盘等,可以直接使用,但是在Linux必须进行挂载才能正常使用。 目录 一、挂载概念 二、查...
    99+
    2023-09-04
    linux 运维 服务器 1024程序员节
  • ubuntu 磁盘挂载
    方法有两种: 使用命令行方式挂载 使用磁盘工具挂载 一、命令行方式 查看已经挂载的分区信息: df -h 查看新加入磁盘信息: lsblk 我们需要挂载的新磁盘通过命令查看发现叫sda,,新买的硬盘一...
    99+
    2023-09-04
    ubuntu linux 服务器
  • Linux下新加新磁盘分区及挂载
    文章目录 一:新插入磁盘查看法1:$sudo fdisk -l法2: $sudo lsblk 二:磁盘分区及格式化1: 分区2:格式化 三:磁盘分区挂载1:手动挂载2:开机自启挂载...
    99+
    2023-10-28
    linux 运维 服务器
  • linux重启之后挂载的磁盘没了如何解决
    当Linux重启后挂载的磁盘消失时,可以按照以下步骤来解决问题:1. 检查磁盘是否存在:运行`lsblk`或`fdisk -l`命令...
    99+
    2023-09-15
    linux
  • Linux云服务器怎么挂载新磁盘
    在Linux云服务器上挂载新磁盘的步骤如下: 首先,在云服务器上插入新硬盘,并记录新硬盘的设备名(通常为/dev/sdb、/de...
    99+
    2024-04-02
  • Linux如何挂载磁盘
    本篇内容主要讲解“Linux如何挂载磁盘”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux如何挂载磁盘”吧!挂接命令(mount)首先,介绍一下挂接(mount)命令的使用方法,mount...
    99+
    2023-06-28
  • Windows 挂载 NFS磁盘 【全】
      Linux 安装NFS服务 # 安装nfs软件yum install -y nfs-utils rpcbind# 配置共享目录及相关信息vim /etc/exports# 输入内容 需要对配置信息进行解释说明/nfs *(insec...
    99+
    2023-09-10
    linux 服务器 运维
  • Linux之磁盘分区、挂载
    文章目录 一、Linux分区●原理介绍●硬盘说明查看所有设备挂载情况挂载的经典案例 二、磁盘情况查询基本语法应用实例磁盘情况-工作实用指令 一、Linux分区 ●原理介绍 Lin...
    99+
    2023-09-01
    linux 运维 服务器
  • 【Linux】磁盘分区和挂载
    目录  Linux磁盘分区和挂载 linux分区  查看所有设备挂载情况  挂载案例 步骤1:新建一块硬盘 操作步骤2: 虚拟机硬盘分区  步骤3:虚拟机硬盘分区格式化  步骤4:将磁盘挂载到根目录下newdisk目录下 mount挂载 u...
    99+
    2023-09-02
    linux 运维 服务器
  • 云服务器磁盘挂载
    云服务器的磁盘挂载通常指使用云服务器的磁盘挂载功能将数据从本地磁盘移动到服务器的磁盘。 下面是一些可能需要用到的步骤和相关操作: 选择云服务器的磁盘挂载:在使用云服务器之前,需要选择使用的云服务器的磁盘挂载选项。在选择磁盘挂载选项时,需...
    99+
    2023-10-27
    磁盘 服务器
  • ubuntu挂载磁盘后启动报错怎么解决
    如果在Ubuntu启动时挂载的磁盘出现错误,可以尝试以下步骤来解决问题:1. 重启计算机,并进入Grub菜单。在启动时按住Shift...
    99+
    2023-09-06
    ubuntu
  • 怎么查看Linux挂载磁盘
    本篇内容主要讲解“怎么查看Linux挂载磁盘”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么查看Linux挂载磁盘”吧!  通常我们都使用命令查看Linux系统中挂载的磁盘,其实除了这种方法外...
    99+
    2023-06-13
  • 云服务器如何挂载磁盘
    云服务器可以通过以下步骤来挂载磁盘:1. 登录到云服务器的控制台或者使用 SSH 连接到云服务器。2. 使用命令行工具或者控制台找到...
    99+
    2023-08-15
    云服务器
  • ubuntu如何将磁盘永久挂载
    要将磁盘永久挂载到Ubuntu系统中,可以按照以下步骤操作:1. 首先,打开终端。2. 使用以下命令查看系统当前已经挂载的磁盘和分区...
    99+
    2023-09-06
    ubuntu
  • linux怎么重新格式化硬盘并挂载
    在Linux系统中重新格式化硬盘并挂载的步骤如下: 确保硬盘没有被挂载,可以通过执行以下命令查看当前挂载的硬盘: df -h ...
    99+
    2024-03-14
    linux
  • linux怎么查看未挂载的磁盘
    要查看未挂载的磁盘,您可以执行以下步骤:1. 打开终端或命令行界面。2. 运行以下命令来列出所有的磁盘和分区信息:```sudo f...
    99+
    2023-09-07
    linux
  • ubuntu怎么查看未挂载的磁盘
    要查看未挂载的磁盘,可以使用以下步骤: 打开终端窗口。 运行以下命令来列出所有磁盘和分区的信息: sudo fdisk -l ...
    99+
    2024-03-13
    ubuntu
  • linux挂载磁盘的作用是什么
    Linux挂载磁盘的作用是将外部的存储设备(如硬盘、光盘、U盘等)连接到系统中,使其可以被系统识别并访问。通过挂载磁盘,用户可以在L...
    99+
    2024-03-14
    linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作