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

复习打卡大数据篇——Hadoop HDFS 02

目录

1. HDFS辅助工具

2. namenode安全模式


1. HDFS辅助工具

跨集群数据拷贝

当我们需要跨集群进行文件数据的拷贝时可以用:

hadoop distcp 集群1的某个文件路径  要拷贝到集群2的地址路径


文件归档工具archive

由于HDFS的块的数量取决于文件的大小和数量,当有太多的小文件时就会产生大量的块,从而产生大连元数据信息,会占用Namenode的内存,而文件归档工具archive就是解决这个问题的,可以把多个小文件归档为一个文件,实际应用中可以根据时间定时进行归档。

使用示例:

首先准备三个小文件 1.txt 2.txt 3.txt,里面内容分别为1 2 3

然后将其归档:hadoop archive -archiveName test.har -p /small  /archive_output/

 表示将/small下的文件归档到/archive_output/下,名字为 test.har,运行之后可以发现走的是MR

归档后可以将我们原来的小文件删了,防止占内存。

test.har点开后里面有四个文件,一个是成功标识、还有2个索引文件、然后是多个part文件、这里只有一个,里面存放了小文件数据

 点开part-0:

里面存放了1 2 3

如何解压归档文件呢?

注意archive作为文件系统层暴露给外界。所以所有的fs shell命令都能在archive上运行,但是要使用不同的URI。Hadoop Archives的URI是:

har://scheme-hostname:port/archivepath/fileinarchive  

scheme-hostname格式为hdfs-域名:端口,如果没有提供scheme-hostname,它会使用默认的文件系统。这里我已经设置我的默认文件系统为HDFS。

使用命令:hadoop fs -cp har:///archive_output/test.har  /small/ 解压归档文件到small里

文件又回来了:

总结:Hadoop Archives 是一种特殊的归档格式,每个 Hadoop Archive 对应一个文件系统目录,其文件扩展名为 *.har。创建归档的过程实际上是执行一个 MapReduce 任务,因此需要在 Hadoop 集群中运行相关命令。归档文件的大小与原始文件所占用的硬盘空间相同。此外,归档文件不支持压缩,尽管它们表面上看似已被压缩。一旦归档文件生成后无法直接修改,如果需要更改,必须重新创建一个新的归档文件。通常情况下,归档后的文件很少会被再次修改,因为它们通常是按照每日或每周等时间周期进行存档。需要注意的是,在归档创建过程中,源文件不会被改变或删除。

2. namenode安全模式

什么是安全模式?

安全模式是 HDFS 的一种特殊运行状态,其主要功能是确保系统中的数据块安全并保持数据一致性。在安全模式下,HDFS 只允许执行读取操作,而不允许进行任何修改、删除或其他变更操作。这种保护机制通常在 NameNode(主节点)启动时启用,用来检查整个文件系统的健康状况。
在 NameNode 启动后,系统会等待所有 DataNode(数据节点)报告自己存储的块信息。只有当 HDFS 中的大多数数据块副本达到预设的最低安全比例(通过配置参数定义)时,系统才会退出安全模式,恢复正常运行。如果系统未达到这个比例,会自动启动块复制操作,确保数据块的副本数达到安全要求。
例如配置文件中设置的副本数量为 3(参数 dfs.replication),理论上每个数据块应该有 3 个副本分布在不同的 DataNode 上。如果实际只有 2 个副本存在,则副本比例为 2/3=0.66。在配置文件 hdfs-default.xml 中定义了最小副本比例(参数 dfs.namenode.safemode.threshold-pct),其默认值为 0.999。由于 0.66 小于 0.999,系统会自动将数据块复制到其他 DataNode 上,直到副本比例不低于 0.999。如果系统中某个数据块有 4 个副本,而超过了设定的 3 个副本,系统会自动删除多余的 1个副本。

当我们启动Hadoop集群,立刻去web看的话安全模式这里是打开的,图中已经关闭了。

一些关于安全模式的配置参数

dfs.namenode.replication.min: 每个数据块最小副本数量,默认为1. 在上传文件时,达到最小副本数,就认为上传是成功的。
dfs.namenode.safemode.threshold-pct: 达到最小副本数的数据块的百分比。默认为0.999f。小于等于0意味不进入安全模式,大于1意味一直处于安全模式。
dfs.namenode.safemode.min.datanodes: 离开安全模式的最小可用datanode数量要求,默认为0.也就是即使所有datanode都不可用,仍然可以离开安全模式。
dfs.namenode.safemode.extension: 当集群可用block比例,可用datanode都达到要求之后,如果在extension配置的时间段之后依然能满足要求,此时集群才离开安全模式。单位为毫秒,默认为30000.也就是当满足条件并且能够维持30秒之后,离开安全模式。 这个配置主要是对集群稳定程度做进一步的确认。避免达到要求后马上又不符合安全标准。

综上要离开安全模式:达到副本数量的block要满足比例要求,存活的datanode数量要满足要求,以上满足后经过设置的等待时间后仍然没问题就可以离开安全模式。

手动进入安全命令:hdfs dfsadmin -safemode enter

手动离开安全模式:hdfs dfsadmin -safemode leave

手动进入安全模式 进行集群的维护升级等动作 避免了群起群停浪费时间。


http://www.kler.cn/a/449325.html

相关文章:

  • Java - 日志体系_Apache Commons Logging(JCL)日志接口库
  • Git 的基本概念和使用
  • 链接数据Linked Data的深层解读
  • Tomcat负载均衡全解析
  • 学生管理系统,增加教师管理,班级管理,角色功能权限管理
  • ROS1入门教程3:自定义消息
  • 流年运势API接口_解析个人命理十年大运PHP实现方法返回json数据
  • virtualbox7 使用 自带的nat网络配置 解决虚机上网问题
  • Qt中的QProcess与Boost.Interprocess:实现多进程编程
  • Opencv之对图片的处理和运算
  • 【初阶数据结构与算法】八大排序算法之交换排序(冒泡排序,快速排序---hoare、挖坑法、lomuto双指针3种版本)
  • RCE 命令执行漏洞 过滤模式 基本的过滤问题 联合ctf题目进行实践
  • 【蓝桥杯——物联网设计与开发】拓展模块4 - 脉冲模块
  • CentOS7网络配置,解决不能联网、ping不通外网、主机的问题
  • 使用 Python 实现 WebSocket 服务器与客户端通信
  • 【Unity Shader】【图形渲染】Shader数学基础9 - 缩放矩阵
  • html 通用错误页面
  • 航模锂电池使用
  • GESP CCF C++六级编程等级考试认证真题 2024年12月
  • 安全删除硬件并弹出媒体(弹出显卡)问题处理
  • 大模型系列——投机解码:Prompt Lookup Decoding代码解读
  • 使用pdf2zh遇到的问题
  • 海天味业:困境突围,再寻增长
  • CV实战项目----YOLO
  • SoftMoE:From sparse to soft mixtures of experts
  • Postman集合转JMeter脚本