首页 > 其他分享 >Hadoop 中的大数据技术:调优篇(3)

Hadoop 中的大数据技术:调优篇(3)

时间:2024-08-16 13:25:22浏览次数:12  
标签:hadoop12 3.1 hadoop Hadoop lzl safemode 调优篇 NameNode 数据

HDFS—故障排除

NameNode 故障处理
  • 需求

    NameNode 进程崩溃且存储的数据丢失,如何恢复 NameNode?

  • 故障模拟

    终止 NameNode 进程

    [lzl@hadoop12 current]$ kill -9 19886
    

    删除 NameNode 存储的数据

    [lzl@hadoop12 hadoop-3.1.3]$ rm -rf /opt/module/hadoop-3.1.3/data/dfs/name/*
    
  • 问题解决

    从 SecondaryNameNode 复制数据至 NameNode

    [lzl@hadoop12 dfs]$ scp -r lzl@hadoop14:/opt/module/hadoop-3.1.3/data/dfs/namesecondary/* ./name/
    

    重启 NameNode

    [lzl@hadoop12 hadoop-3.1.3]$ hdfs --daemon start namenode
    

    向集群上传文件

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

    文件系统仅接受读取请求,不接受删除或修改等更改请求。

  • 进入安全模式的场景

    • NameNode 加载镜像文件和编辑日志期间处于安全模式。
    • NameNode 接收 DataNode 注册时处于安全模式。
  • 退出安全模式的条件

    • dfs.namenode.safemode.min.datanodes: 最小可用 DataNode 数量,默认为 0。
    • dfs.namenode.safemode.threshold-pct: 副本数达到最小要求的 block 占系统总 block 数的百分比,默认为 0.999f。
    • dfs.namenode.safemode.extension: 稳定时间,默认值 30000 毫秒,即 30 秒。
  • 基本语法

    bin/hdfs dfsadmin -safemode get	# 查看安全模式状态
    bin/hdfs dfsadmin -safemode enter # 进入安全模式状态
    bin/hdfs dfsadmin -safemode leave	# 离开安全模式状态
    bin/hdfs dfsadmin -safemode wait	# 等待安全模式状态
    
  • 案例 1:启动集群进入安全模式

    重启集群

    [lzl@hadoop12 subdir0]$ myhadoop.sh stop
    [lzl@hadoop12 subdir0]$ myhadoop.sh start
    

    尝试删除数据,提示集群处于安全模式

  • 案例 2:磁盘修复

    需求:

    数据块损坏,进入安全模式,如何处理?

    步骤:

    删除特定块信息

    [lzl@hadoop12 subdir0]$ rm -rf blk_1073741847 blk_1073741847_1023.meta
    [lzl@hadoop12 subdir0]$ rm -rf blk_1073741865 blk_1073741865_1042.meta
    

    注意:hadoop13/hadoop14 上重复执行以上命令。

    重启集群

    [lzl@hadoop12 subdir0]$ myhadoop.sh stop
    [lzl@hadoop12 subdir0]$ myhadoop.sh start
    

    观察状态

    访问 http://hadoop12:9870/dfshealth.html#tab-overview

    离开安全模式

    [lzl@hadoop12 subdir0]$ hdfs dfsadmin -safemode get
    Safe mode is ON
    [lzl@hadoop12 subdir0]$ hdfs dfsadmin -safemode leave
    Safe mode is OFF
    

    再次观察状态

    再次访问 http://hadoop12:9870/dfshealth.html#tab-overview

    1. 删除元数据
    2. 再次观察状态

    再次访问 http://hadoop12:9870/dfshealth.html#tab-overview,集群已恢复正常。

  • 案例 3:模拟等待安全模式

    查看当前模式

    [lzl@hadoop12 hadoop-3.1.3]$ hdfs dfsadmin -safemode get
    Safe mode is OFF
    

    进入安全模式

    [lzl@hadoop12 hadoop-3.1.3]$ bin/hdfs dfsadmin -safemode enter
    

    创建并执行脚本/opt/module/hadoop-3.1.3路径上编辑脚本safemode.sh

    [lzl@hadoop12 hadoop-3.1.3]$ vim safemode.sh
    #!/bin/bash
    hdfs dfsadmin -safemode wait
    hdfs dfs -put /opt/module/hadoop-3.1.3/README.txt /
    [lzl@hadoop12 hadoop-3.1.3]$ chmod 777 safemode.sh
    [lzl@hadoop12 hadoop-3.1.3]$ ./safemode.sh
    

    离开安全模式

    [lzl@hadoop12 hadoop-3.1.3]$ bin/hdfs dfsadmin -safemode leave
    

    观察结果

    Safe mode is OFF
    

    确认数据上传

慢磁盘监控
  • 慢磁盘定义

    • “慢磁盘”指的是写入数据非常缓慢的磁盘。这类磁盘在长时间运行和高负载任务下容易出现。
  • 发现慢磁盘的方法

    通过心跳未联系时间

    • 当出现慢磁盘时,可能影响 DataNode 与 NameNode 之间的正常心跳(正常心跳间隔通常为 3 秒)。

    使用 fio 命令测试磁盘读写性能

    [lzl@hadoop12 ~]# sudo yum install -y fio
    

    顺序读测试

    [lzl@hadoop12 ~]# sudo fio -filename=/home/lzl/test.log -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r
    

    结果显示,磁盘的总体顺序读速度为 360MiB/s。

    顺序写测试

    [lzl@hadoop12 ~]# sudo fio -filename=/home/lzl/test.log -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_w
    

    结果显示,磁盘的总体顺序写速度为 341MiB/s。

    随机写测试

    [lzl@hadoop12 ~]# sudo fio -filename=/home/lzl/test.log -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_randw
    

    结果显示,磁盘的总体随机写速度为 309MiB/s。

    混合随机读写测试

    [lzl@hadoop12 ~]# sudo fio -filename=/home/lzl/test.log -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r_w -ioscheduler=noop
    

    结果显示,磁盘的总体混合随机读速度为 220MiB/s,写速度为 94.6MiB/s。

小文件归档

HDFS 存储小文件的弊端

  • 存储小文件会导致 NameNode 内存消耗过多,因为每个文件都需要按块存储,而每个块的元数据都存储在 NameNode 的内存中。尽管如此,小文件所需的磁盘空间取决于其实际大小而非块大小。

  • 解决方案

    使用 HDFS 存档文件(HAR 文件)来更高效地归档小文件,减少 NameNode 内存使用的同时保持文件的透明访问。

  • 案例实操

    启动 YARN 进程

    [lzl@hadoop12 hadoop-3.1.3]$ start-yarn.sh
    

    归档文件

    [lzl@hadoop12 hadoop-3.1.3]$ hadoop archive -archiveName input.har -p  /input   /output
    

    查看归档

    [lzl@hadoop12 hadoop-3.1.3]$ hadoop fs -ls /output/input.har
    [lzl@hadoop12 hadoop-3.1.3]$ hadoop fs -ls har:///output/input.har
    

    解归档文件

    [lzl@hadoop12 hadoop-3.1.3]$ hadoop fs -cp har:///output/input.har/*    /
    

标签:hadoop12,3.1,hadoop,Hadoop,lzl,safemode,调优篇,NameNode,数据
From: https://blog.csdn.net/qq_45115959/article/details/141257245

相关文章

  • canal数据同步工具介绍与应用
    canal服务canal介绍canal版本与环境canal服务集canal应用场景:canal常见问题xml配置问题连接认证问题jar版本问题连接问题canal介绍‌1、Canal是‌阿里巴巴开源的‌MySQL增量数据订阅和消费工具,通过模拟MySQL的‌slave与‌master交互,捕获‌binarylog事件。2、C......
  • 数据结构与算法详解
    目录一、引言二、数据结构1.数组(Array)定义特点应用场景总结表格2.链表(LinkedList)定义特点应用场景总结表格3.栈(Stack)定义特点应用场景总结表格4.队列(Queue)定义特点应用场景总结表格5.树(Tree)定义特点应用场景总结表格6.哈希表(HashTable)定......
  • 数据结构+单链表应用
    一、问题描述编写程序实现两个有序表的交和差,令L1=(x1,x2,x3,...,xn),L2=(y1,y2,y3,...,yn),它们是两个线性表,采用带头结点的单链表存储,请先实现单链表存储两个链表,再完成如下功能:(1)sort:将单链表的所有结点按照数据域进行递增排序,构造成有序单链表;(2)interSect:求两个......
  • SpringMVC 接收数据
    SpringMVC接收数据1.设置访问路径@RequestMapping将handler注册到HandlerMapping中@RequestMapping可以用到方法上也可以用到类上用到方法上,访问某个路径就直接执行这个方法。如果方法上都有某一个路径字段,就可以把他提取出来放到类上。需要注意的是放在类上,方法上也必......
  • PLSQL导入/导出数据方法
    https://blog.csdn.net/zhouleiblog/article/details/8893005以下为借用以上信息:PLSQL导入/导出数据方法PLSQL导入/导出数据方法以前导数据库信息的时候,总是会先开启sql窗口,把自己手写的建表文件复制进去,然后再导入数据信息。今天突然懒得去找以前的建表文件,而想用SLSQL直接从......
  • 一个创新的国密前后分离快速开发平台,提供工作流、多租户、多数据源、Vue3表单设计器,高
    前言在当前的软件开发领域,尤其是企业级应用开发中,开发者面临着诸多挑战,如代码安-全、数据加密、国产化适配等。传统的开发平台往往难以满足这些日益增长的需求,特别是在国产化替代的大背景下,对于符合国家安-全标准的软件需求愈发迫切。这就需要一款能够解决上述痛点,同时提供高......
  • SSM-国外鞋服代购平台-97782(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP、爬虫、
    SSM国外鞋服代购平台摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,鞋服代购平台当然也不例外。代购平台是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个开发过......
  • LLMs 能否胜任「数据标注」?机遇与挑战并存
    编者按:目前,LLMs在机器翻译、文本生成、多轮问答等任务上已表现得非常出色了。人们开始思考它们是否也可以用于数据标注工作。数据标注是训练和评估各种机器学习模型的基础,一直是一项昂贵且耗时的工作。是否能够借助LLMs的强大能力来为数据标注流程降本增效呢?本文深入探......
  • 火山引擎ByteHouse助力车企实现高性能数据分析
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群。 新能源汽车市场正在迎来飞速发展时期。根据IDC预测,中国乘用车市场中,新能源车市场规模将在2028年超过2300万辆,年复合增长率为22.8%。 一套高可靠、高性能、高可用的数据分析系统对......
  • 基本数据类型与包装数据类型的使用标准
    这段使用标准主要是为了在编写代码时处理好基本数据类型和包装数据类型的选择问题,避免一些潜在的风险。1.【强制】所有的POJO类属性必须使用包装数据类型POJO(PlainOldJavaObject)类通常用作数据传输对象,属性可能会与数据库字段直接映射。由于数据库字段可以为null,如果PO......