【大数据之Hadoop】三十、HDFS故障排除

news2025/1/4 15:05:56

使用3台服务器,恢复yarn快照。

1 NameNode故障处理

  出现NameNode进程挂了并且存储的数据也丢失了,怎么恢复NameNode。
在这里插入图片描述
故障模拟:

(1)kill掉NameNode的进程:

kill -9 进程ID

(2)删除NameNode的数据:/opt/module/hadooop-3.3.1/data/dfs/name

rm -rf /opt/module/hadooop-3.3.1/data/dfs/name/*

故障恢复:

(1)拷贝SecondaryNameNode中的数据到NameNode存储目录下:

scp -r liaoyanxia@hadoop104:/opt/module/hadoop-3.3.1/data/dfs/namesecondary/* ./name/

(2)重启NameNode:

hdfs --daemon start namenode

(3)向集群上传一个文件,成功!

2 集群安全模式&磁盘修复

安全模式的状态:文件系统只能进行读操作,不能删除、修改等。
进入安全模式的场景:
(1)NameNode在加载镜像文件和编辑日志时(集群刚启动或者系统刚启动时会进入到安全模式)。
(2)NameNode在接收DataNode注册时。

在这里插入图片描述
退出安全模式的条件:
(1)dfs.namenode.safemode.min.datanodes:最小可用datanode数量,默认0
(2)dfs.namenode.safemode.threshold-pct:副本数达到最小要求的block占系统总block数的百分比,默认0.999f。(只允许丢一个块)
(3)dfs.namenode.safemode.extension:稳定时间,默认值30000毫秒,即30秒。

基本语法:
集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。

1)bin/hdfsdfsadmin -safemode get  (功能描述:查看安全模式状态)
(2)bin/hdfsdfsadmin -safemode enter (功能描述:进入安全模式状态)
(3)bin/hdfsdfsadmin -safemode leave (功能描述:离开安全模式状态)
(4)bin/hdfsdfsadmin -safemode wait (功能描述:等待安全模式状态)

案例1:磁盘修复:当数据损坏进入安全模式时怎么处理:
(1)分别进入hadoop102、hadoop103、hadoop104的/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-…/current/finalized/subdir0/subdir0目录,统一删除某2个块信息(.meta后缀)。
在这里插入图片描述
删除之后集群没有任何反应的原因:
  NameNode和DataNode的工作机制:在集群启动之后,由DataNode主动向NameNode汇报,等到6小时间隔再汇报一次,当把数据块损坏时,得至少过6小时NameNode才会知道DataNode有无汇报。

修复方法:重启集群。

(2)重启集群。
(3)观察http://hadoop102:9870/dfshealth.html#tab-overview
在这里插入图片描述
  说明:安全模式已经打开,块的数量没有达到要求,且一直处于安全模式。
(4)离开安全模式:

hdfs dfsadmin -safemode get
hdfs dfsadmin -safemode leave

(5)安全模式关闭后,观察http://hadoop102:9870/dfshealth.html#tab-overview,发现丢失两个块。
在这里插入图片描述
  此时可以对集群进行工作,但下次再启动集群时还是会进入到安全模式,任何关掉安全模式后还是会提示丢失块。
  方法一:由专业人士修复丢失的块,在恢复块之前不能对集群有任何操作。
  方法二:如果该块不重要,则可以在HDFS删除元数据。
(6)用方法二在HDFS删除上述目录下的元数据。
在这里插入图片描述
(7)重启集群,观察http://hadoop102:9870/dfshealth.html#tab-overview,集群已经正常。

案例2:模拟等待安全模式,只有在安全模式退出之后才能继续进行操作。
(1)查看当前模式:

hdfs dfsadmin -safemode get

(2)先进入安全模式:

bin/hdfs dfsadmin -safemode enter

(3)在/opt/module/hadoop-3.3.1路径上创建并执行脚本safemode.sh,执行完该脚本之后数据并没有上传到HDFS中。

vim safemode.sh

#!/bin/bash
hdfs dfsadmin -safemode wait
hdfs dfs -put /opt/module/hadoop-3.3.1/README.txt /

chmod 777 safemode.sh
./safemode.sh

在这里插入图片描述
(4)在另外一个窗口执行执行安全模式退出。

bin/hdfs dfsadmin -safemode leave

(5)观察原来的窗口显示安全模式退出。

Safe mode is OFF

(6)观察到HDFS集群上数据上传成功。
在这里插入图片描述

3 慢磁盘监控

  指写入数据非常慢的磁盘。当机器运行时间长了,任务运行多,磁盘读写能力退化,严重时出现写入数据延时问题。

发现慢磁盘的办法:
  在HDFS创建一个目录,正常需要不到1s的时间,若创建目录大于1min且不是每次都是,知识偶尔慢,就可能出现慢磁盘。

找出哪块是慢磁盘的方法:
1)心跳未联系时间
  慢磁盘会影响DataNode和NameNode之间的心跳,正常心跳时间间隔是3s,超过3s则异常。

2)fio命令,测试磁盘读写性能
先下载fio:sudo yum install -y fio
(1)顺序读测试

sudo fio -filename=/home/liaoyanxia/test.log -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r

(2)顺序写测试

sudo fio -filename=/home/liaoyanxia/test.log -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_w

(3)随机写测试

sudo fio -filename=/home/liaoyanxia/test.log -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_randw

(4)混合随机读写

sudo fio -filename=/home/liaoyanxia/test.log -direct=1 -iodeth 1 -thread -re=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r_w -ioscheduler=noop

4 小文件归档

小文件弊端:
  因为每个文件按块存储,每个块都存储在NameNode中,大概占150Byte,所以对于100个1k的文件块和100个128m的文件块,所占的NameNode内存大小都为100*150Byte。大量小文件会占用很多NameNode内存。

解决:
  HDFS存档文件或HAR文件,把文件存入HDFS块,在减少NameNode内存使用的同时,允许对文件进行透明的访问。(即HDFS存的文件对内还是一个一个独立文件,对NameNode而言却是一个整体,减少了NameNode的内存。
在这里插入图片描述
先开启集群:

myhadoop.sh start

归档文件:
  把/input目录里面的所有文件归档成一个叫input.har的归档文件,并把归档后文件存储到/output路径下。

hadoop archive -archiveName input.har -p  /input  /output

查看归档文件:

hadoop fs -ls /output/input.har
hadoop fs -ls har:///output/input.har    可以看到归档文件里的一个个文件

解归档文件:

hadoop fs -cp har:///output/input.har/*    /

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/515473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud:微服务保护之授权规则

授权规则可以对请求方来源做判断和控制。 1.授权规则 1.1.基本规则 授权规则可以对调用方的来源做控制,有白名单和黑名单两种方式。 白名单:来源(origin)在白名单内的调用者允许访问 黑名单:来源(origi…

【JAVAEE】阻塞队列的实现

目录 阻塞队列 生产者消费者模型 消息队列 消息队列的作用 1.解耦 2.削峰填谷 3.异步 演示JDK中的阻塞队列 实现一个阻塞队列 阻塞队列 队列,是一种先进先出(FIFO)数据结构。 阻塞队列也满足队列的特性: 入队元素时&am…

详细版易学版TypeScript - 泛型详解

一、泛型的基本使用 泛型:定义时不确定是什么类型,就先定义为泛型,等到使用时再去确定具体的类型 //实现需求:根据传入的数据value和数量count,返回有count个value值的数组 const myFuncTest1 (value: number, count:…

一文搞懂Bootloader跳转到APP 的方法和原理

一 跳转方法 1、检查栈顶地址是否合法 if (((*(uint32_t*)(NRF52840_APP_BASE)) & 0xffff0000 ) 0x20040000 ){nrf_bootloader_app_start();}在编译生成的APP.bin文件中,前4个字节存放的是__initial_sp,紧接着第二个地址存放的是Reset_Handler;这两…

【机器学习】决策树(基础篇)

决策树(基础篇---分类问题,回归问题会另出一篇博客,但也是基础篇) 思维导图前言了解决策树(前后观看)使用决策树(感性的认识)如何生成决策树(原理部分,此部分有局限性&am…

一次失败的面试经历:我只想找个工作,你却用面试题羞辱我

金三银四就要来了,即将又是一波求职月,面对跳槽的高峰期,很多软件测试人员都希望能拿一个满意的高薪offer,但是随着招聘职位的不断增多,面试的难度也随之加大,而面试官更是会择优录取 小王最近为面试已经焦…

redis与mysql事务区别

mysql事务具有原子性,隔离性,一致性的特点。 redis提供multi, exec,watch来支持事务: 原子性,一致性: redis保证在multi,exec之间的语句作为一个整体执行,redis在exec后&…

【Linux进阶之路】基本指令(上)

文章目录 * —— 通配符与ls搭配使用与 rm 搭配使用 ctrl C——终止当前操作man——指令的指南man manman printfman pwd echo ——输出指定内容echo 字符串 cat ——打印文件呢内容cat 文件名常用选项 moreless常用 head——查看文件的前N行内容tail| ——管道cp——拷贝文…

【Android车载系列】第13章 车载渲染-OpenGL实现屏幕渲染

1 OpenGL渲染 上一章节我们通过SurfaceFlinger拿到Surface进行图像绘制,这节课我们通过GLSurfaceView来进行绘制,把摄像头的数据采集后展示渲染在屏幕上,这种方式是在GPU进行处理和绘制。 1.1 渲染使用GLSurfaceView 自定义CarView继承GLS…

考研数学武忠祥 高等数学0基础课笔记 函数和映射

常见的函数 取整函数的基本性质 函数的有界性 例题 sinx 是从-1到1的,但是x是无界的 遇到这种带sin的,就要试着取特殊值,让它为1或者为0 函数的单调性 函数的奇偶性 函数的周期性 举例 数学中Q表示有理数集,下面那个符号表示…

Linux 部署 Nexus (下载、安装、使用)

----仅供学习 如有侵权 联系删除----- 1、下载 下载方式1:官网下载 //建议用迅雷 https://help.sonatype.com/repomanager3/product-information/download/download-archives—repository-manager-3下载方式2:百度云盘下载 文件名:nexus-3…

一个让阿里面试官都说好软件测试简历模板

作为软件测试的垂直领域深耕者,面试或者被面试都是常有的事,可是不管是啥,总和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息、过往经历等,面试者希望通过简历把自己最好的一面体现给面试官,…

数据库表设计规范—三范式、反范式

1.第一范式: 表中的属性不可分割 改为: 2.第二范式: 非主属性必须完全依赖主属性,不能部分依赖,比如只依赖联合主键中的其中一个主键就能拿到数据,这是不符合第二范式的 3.第三范式: 非主…

【Linux】缓存数据库Memcached、Memcached 安装、Memcached应用实例配置

一、 什么是缓存 缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。 从性能分析: CPU缓存>内存>磁盘>数据库 从性能来看内存是介于CPU和磁盘,在实际中内存是CPU和磁盘的桥梁。buffer和cache…

一、 JSP01 初识动态网页

一、 JSP01 初识动态网页 1.1 Web 应用程序开发 1.1.1 C/S 架构 客户端(Client)/服务器(Server)架构(即 C/S 架构)的系统主其分为客户端和用户端两层用户需要在本地安装客户端软件,通过网络与…

白话文讲计算机视觉-第十一讲-Harris算子

Moravec算子 说白了就是求两个像素点之间的差,然后平方一下给它变成正值。 其中,x,y表示像素点,u、v表示水平竖直方向的偏移量;w(x,y)为滤波函数,一般直接等于常数1。 I(xu,xv)、I(x,y )表示像素点(xu,xv)、…

基于zemax的折叠光路的激光扩束系统设计

激光扩束系统是激光干涉仪、激光测距仪、激光雷达等诸多仪器设备的重要组成部分,其光学系统多采用通过倒置的望远系统,来实现对激光的扩束,其主要作用是压缩激光束的空间发散角,使扩束后的激光束口径满足其他系统的要求。 激光器…

MySQL-图形化界面工具 (上)

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易&…

【sorting+双指针+数学】CF845div2 C. Quiz Master

和我一开始想的不太一样 一开始想的也是排序,然后双指针,但是我想的双指针是l1,rn的,因为我没注意到极差尽可能小这个条件可以转化为区间长度最短 其实就是尺取法,然后合法性就是这个区间内的数的所有因子能填满1~m这些格子 找…

Vue2 Vue3 Scoped 样式穿透

概念 主要是用于修改很多 Vue 常用的组件库(Element, Vant, AntDesigin),虽然配好了样式但是还是需要更改其他的样式, 因为添加了 scoped 实现 css 模块化 就需要用到 样式穿透 ,更改组件的样式 scoped 的原理 Vue …