Hadoop的磁盘大小不一导致节点挂掉

hadoop集群一台机器多块磁盘存储不均问题 hdfs-site.xml 配置文件按下面三个步骤添加参数。添加完同步至datanode节点。 1、数据存储磁盘参数设置多个磁盘目录 剩余磁盘空间大的在前面 <property> <name>dfs.data.dir</name> <value>/data1/dfs/dn,/mnt1/dfs/dn1,/mnt2/dfs/dn</value> </property> 2、datanode多存储 阅读详情

问题描述

DataNode挂载的磁盘或者DataNode节点挂载多个磁盘,如果存在一些磁盘大小不一样,数据在落盘时就可能会出现磁盘使用率不均匀的情况,容量较小的盘容易被写满,而容量大的盘还剩很多空间。磁盘写满后,影响Hadoop集群的正常工作。

建好集群后需要将历史记录导入到hbase中,而集群中有三台主机外接了磁盘阵列,主机磁盘阵列大小四十多G,磁盘阵列大概1.6个T。运行将数据写入hbase的程序,第二天发现集群挂掉了两个节点。用df查看各个磁盘使用情况,发现主机系统盘使用率100%!!!外接磁盘阵列使用率才3%。由于主机系统盘几乎没有剩余磁盘空间,导致操作系统也不能正常使用:tab键补全命令不能使用,vim打开文件报错等等。

解决方案

于是先解决燃眉之急,网上提供的解决办法有三种:

  1. 数据清理:此方法属于紧急措施:清理掉hdfs中不用的数据 
  2. 数据压缩:手动压缩部分数据,对于HBase可使用GZ压缩方式,能快速有效的降低磁盘使用率 
  3. 数据移盘:手动进行数据的移动,将部分数据由写满的盘移动到其它盘

我选择了第三种解决办法,主要有三步操作:

  1. 关闭DataNode节点 
  2. 使用mv命令移动数据,要绝对保证移动后的数据相对目录与移动前一致,如移动前usr/local/hadoop/tmp/dfs/data/current/BP-22769690-172.16.0.100-1541402558553/current/finalized/subdir0/subdir0,移动后为home/dfs/data/current/BP-22769690-172.16.0.100-1541402558553/current/finalized/subdir0/subdir0(注意:路径格式应该保持严格一致;而且subdir0目录下一共有32个subdir文件,从subdir0到subdir31,我选择是将其都移出去)
  3. 重启DataNode;sbin/hadoop-daemon.sh start datanode;sbin/yarn-daemon.sh start nodemanager

可以参考 https://wiki.apache.org/hadoop/FAQ#On_an_individual_data_node.2C_how_do_you_balance_the_blocks_on_the_disk.3F 

总结

是什么原因造成了数据落盘时的不均匀情况?本主要文调研了Hadoop的数据两种写入磁盘的策略:循环选取策略和可用空间策略。

循环选取策略

循环选取的策略很简单,循环扫描整个Volumes,如果availableVolumeSize大于blockSize ,即返回该volume。按照循环的策略,数据会均匀的落在不同大小的盘上,大磁盘和小磁盘存储的块是一样的,导致小的磁盘最先被写满。

CDH中HDFS节点磁盘大小不统一问题 开发中遇到集群节点磁盘空间大小差距比较大,2T到20T不等。由于HDFS的存储机制,数据是分布式均匀存储到节点上,所以会导致空间小的节点先存储满,进一步导致节点没有多余空间存储各种运行文件而崩溃。运行df -h指令查看节点磁盘使用情况Filesystem                          Size  Used Avail Use% Mounted on/dev/mapper/v... 阅读详情

相关推荐

Hadoop节点"慢磁盘"监控

前言最近在工作中解决了一个慢磁盘的问题,个人感觉整个发现-分析-解决的过程还是非常有意思并且很有意义的.而且磁盘监控在目前的Hadoop中还是没有做的很全的,大多数都是对Datanode,可以说这是1个盲区.其实想一想,hadoop自身不做这方面的监控也合理,因为像这种问题基本上是属于硬件问题,本不应该在软件层面对其进行监控,没有这么大的必要.但是后来我们想了想,如果通过软件层面的监控手段发现机器

走在前往架构师的路上 1万+

Hadoop集群datanode磁盘不均衡的解决方案

HadoopHDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点节点节点之间磁盘大小不一样等等。当hdfs出现不平衡状况的时候,将引发很多问题,比如MR程序无法很好地利用本地计算的优势,机器之间无法达到更好的网络带宽使用率,机器磁盘无法利用等等。因业务需要搭建一个新hadoop集群,并将老的hadoop集群中的数据迁移至新的hadoop集群,而且datanode节点不能全部上线,其中还可能会出现节点上线或下线的情况,这个时候就很容易出现机器与机器之间磁盘的均衡的情况,具体如下:上图中可以看出max是94.18%,而min是0.37%,其中有600多台是

Hadoop磁盘写入策略引发的问题

DataNode挂载的磁盘或者DataNode节点挂载多个磁盘,如果存在一些磁盘大小不一样,数据在落盘时就可能会出现磁盘使用率不均匀的情况,容量较小的盘容易被写满,而容量大的盘还剩很多空间。磁盘写满后,影响Hadoop集群的正常工作。国庆第一天,线上集群就报出了JournalNode挂掉的异常情况,经查是由于2T的磁盘被写满,JournalNode无法再写入数据。当时采取了临时的措施,删掉HBase

xiao的博客 2385

Hadoop磁盘配置

这里给DataNode增加一个磁盘,具体步骤如下:(假设我的磁盘路径为/dev/vdb) 一、磁盘分区:fdisk /dev/vdb (具体分区可自定义,这里只分一个主分区/dev/vdb1) 二、磁盘格式化:mkfs.ext3 /dev/vdb1 (Linux下磁盘格式为ext系列,这里,格式化为ext3) 三、挂载磁盘:mount /dev/vdb1 /mnt/test 四、添加到...

小萌猿的博客 4840

Hadoop-hdfs 设置磁盘

Hadoop-hdfs 设置磁盘

weixin_47099283的博客 880

遇到hadoop 集群挂掉情况处理情况分析

早上起来发现我们的spark调度任务挂掉(spark运行报错日志报错是数据块丢失),当时查看hadoop集群节点状态,发现bd-node01节点是Down状态(当时是挂掉了)。但是节点挂掉不应该导致任务运行不了,因为正常情况下hadoop集群数据都是有备份的,至少得是2份,即使bd-node01挂掉,也会在其它节点找bd-node01上数据的备份数据就行读取。于是带着疑问看了下overview页面发现确实是有块丢失。 于是查看hadoop集群相关数据的副本数: hiveods库副...

weixin_42489619的博客 4288

ZooKeeper&Flink&Hadoop集群单个节点服务器挂掉之后的恢复

背景: 小项目用到的服务器老旧,其中一台周末因为总线等硬件原因挂掉了,各种监控报警,运维尝试恢复失败后直接建议更新设备,于是需要服务迁移和恢复。 其中ZooKeeper&Flink&Hadoop集群因为单节点连接失败也开始罢工了。 组里的架构加运维大牛走了,小白尝试恢复集群服务。所以本文只涉及简单的服务恢复和报错处理。 Tips:要学会利用日志、日志、日志排查问题。 一、ZooKeeper 最初尝试恢复的实际是Flink,恢复失败后发现其日志中关于zooKeeper的报错(.

wangyueshu的博客 2508

Hadoop】DataNode 数据盘进行磁盘DiskBalancer

DiskBalancer是一个命令行工具,可在DataNode的所有磁盘上均匀分发数据。 此工具对给定的DataNode进行操作,并将块从一个磁盘移动到当前DataNode的另一个磁盘。DiskBalancer通过创建计划并继续在DataNode上执行该计划。 计划是一组陈述,描述了两个磁盘之间应该移动的数据。 计划由多个移动步骤组成。 移动步骤具有源磁盘,目标磁盘和移动的字节数。 可以针对运行数据节点执行计划。DiskBalancer是一个相对独立的线程,它可以对数据的复制进行限流。

康师傅没有眼泪 5042

【总结】hadoop 磁盘导致集群宕机排查解决

hadoop 集群因磁盘满了,导致服务挂掉,甚至有机器宕机。当机器重启后,启动nameNode 和 journalNode 有报错。

Java高手真经 1570

Hadoop节点磁盘均衡

Hadoop的balancer主要是针对于集群之间的数据均衡,但是有些时候节点内有新增磁盘或者数据出现在磁盘上不均衡时,需要做磁盘均衡,就是将其他已经写入数据的磁盘均衡到新增加的磁盘上去,大概分为以下三个步骤,(plan)计划,(execute)执行,(query)查询如上图需要将Hadoop103节点/app的数据均衡到/app2中。

weixin_46555671的博客 862

hadoop节点磁盘占用率平衡

参考: 《深入浅出:Hadoop的start-balancer.sh与hdfs balancer分布式数据均衡》https://yq.aliyun.com/articles/719679

lp895876294的博客 1206

HDFS Namenode挂掉后分析解决

目录1 分析2 单节点挂掉数据恢复3 内存溢出 1 分析 挂掉后首先肯定是进行重启,如果时间段比较高峰期,肯定要快速移动文件进行复原,等错过高峰进行事故分析! 2 单节点挂掉数据恢复 方法一:将SecondaryNameNode中数据拷贝到namenode存储数据的目录; 方法二:使用-importCheckpoint选项启动namenode守护进程,从而将SecondaryNameNode中数据拷贝到namenode目录中。步骤如下:拿一台和原来机器一样的机器,包括配置和文件,一般来说最快的是拿你节点

赵广陆 3117

Hdfs的数据磁盘大小不均衡如何处理

最近浪尖在纠结一个现在看起来很简单的问题。现象描述建集群的时候,datanode的节点数据磁盘总共是四块磁盘做矩阵成了一个7.2TB的sdb1(data1),两块通过矩阵做了一个3.6TB的sdc1(data2)磁盘,运维做的,历史原因。刚开始没有发现,然后集群过了一段时间,随着数据量的增加,发现集群有很多磁盘超过使用率90%告警,浪尖设置磁盘告警阈值是90%,超过阈值就会发短信或者微信告警,提醒

大数据星球-浪尖 7350

所有HDFS磁盘数据存储不均情况的终极处理方案

一、多节点存储不均 1、现有多节点存储不均: 1、先设置带宽 hdfs dfs -setBalancerBandwith 字节数 2、然后执行脚本start-balancer.sh -threshold n 或者 hdfs balancer -threshold n 说明: 第1步: 设置的带宽为datanode间平衡数据时消耗的最大带宽,默认值为10...

曹利荣的博客 1497

hadoop集群负载均衡以及配置方法

    一个良好的hadoop集群应该是数据均匀的分布在各个节点上,而不是一个节点磁盘都满了,而另一个磁盘使用率才不到10%,这里简单介绍一下hadoop数据存储的原理以及如何保证数据均匀的分布在各个节点上。    本地数据上传hdfs存储流程:        第一块副本:首先集群会判断该上传主机是不是DataNode,如果是DataNode,并且空间够用的情况下,会首先把数据存储在本DataNo...

zcb_data的博客 4734

HDFS集群数据不均衡处理

HDFS集群数据不均衡处理

Data & Analysis 2004
上一篇: hadoop及spark集群搭建后续
下一篇: spark作业配置及spark-submit参数说明
山木枝
博客等级 码龄10年 8粉丝 24原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值