HDFS 系列六:DataNode 工作机制

2024-02-26 12:18

本文主要是介绍HDFS 系列六:DataNode 工作机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 6. HDFS 其他功能
    • 6.1 集群间数据拷贝
    • 6.2 Hadoop 存档
    • 6.2.1 理论概述
      • 6.2.2 案例实操
    • 6.3 快照管理
      • 6.3.1 基本语法
      • 6.3.2 案例实操
    • 6.4 回收站
      • 6.4.1 默认回收站
      • 6.4.2 启用回收站
      • 6.4.3 查看回收站
      • 6.4.4 修改访问垃圾回收站用户名称
      • 6.4.5 进入回收站
      • 6.4.6 恢复回收站数据
      • 6.4.7清空回收站

6. HDFS 其他功能

6.1 集群间数据拷贝

  1. scp 实现两个远程主机之间的文件复制
scp -r hello.txt root@master:/user/wj/hello.txt		// 推 push
scp -r root@master:/user/wj/hello.txt  hello.txt		// 拉 pull
scp -r root@master:/user/wj/hello.txt root@master:/user/wj   //是通过本地主机中转实现两个远程主机的文件复制;如果在两个远程主机之间ssh没有配置的情况下可以使用该方式。
  1. 采用 discp 命令实现两个 Hadoop 集群之间的递归数据复制
bin/hadoop distcp hdfs://master1:9000/user/wj/hello.txt hdfs://master2:9000/user/wj/hello.txt

6.2 Hadoop 存档

6.2.1 理论概述

每个文件均按块存储,每个块的元数据存储在 Namenode 的内存中,因此 Hadoop 存储小文件会非常低效

因为大量的小文件会耗尽 Namenode 中的大部分内存

但注意,存储小文件所需要的磁盘容量和存储这些文件原始内容所需要的磁盘空间相比也不会增多

例如,一个 1MB 的文件以大小为 128MB 的块存储,使用的是 1MB 的磁盘空间,而不是128MB

Hadoop 存档文件或HAR文件,是一个更高效的文件存档工具,它将文件存入 HDFS 块,在减少 Namenode 内存使用的同时,允许对文件进行透明的访问

具体说来,Hadoop 存档文件可以用作 MapReduce 的输入

6.2.2 案例实操

  1. 需要启动 yarn 进程

    start-yarn.sh
    
  2. 归档文件

    归档成一个叫做 xxx.har 的文件夹,该文件夹下有相应的数据文件

    Xx.har目录是一个整体,该目录看成是一个归档文件即可

    bin/hadoop archive -archiveName myhar.har -p /user/wj   /user/my
    
  3. 查看归档

    hadoop fs -lsr /user/my/myhar.har
    hadoop fs -lsr har:///myhar.har
    
  4. 解归档文件

    hadoop fs -cp har:/// user/my/myhar.har /* /user/wj
    

6.3 快照管理

快照相当于对目录做一个备份,并不会立即复制所有文件,而是指向同一个文件

当写入发生时,才会产生新文件

6.3.1 基本语法

  1. hdfs dfsadmin -allowSnapshot 路径 (功能描述:开启指定目录的快照功能)

  2. dfs dfsadmin -disallowSnapshot 路径 (功能描述:禁用指定目录的快照功能,默认是禁用)

  3. hdfs dfs -createSnapshot 路径 (功能描述:对目录创建快照)

  4. hdfs dfs -createSnapshot 路径 名称 (功能描述:指定名称创建快照)

  5. hdfs dfs -renameSnapshot 路径 旧名称 新名称 (功能描述:重命名快照)

  6. hdfs lsSnapshottableDir (功能描述:列出当前用户所有可快照目录)

  7. hdfs snapshotDiff 路径1 路径2 (功能描述:比较两个快照目录的不同之处)

  8. hdfs dfs -deleteSnapshot (功能描述:删除快照)

6.3.2 案例实操

  1. 开启/禁用指定目录的快照功能

    hdfs dfsadmin -allowSnapshot /user/wj/data		
    hdfs dfsadmin -disallowSnapshot /user/wj/data
    
  2. 对目录创建快照

    hdfs dfs -createSnapshot /user/wj/data		// 对目录创建快照
    

    通过web访问hdfs://hadoop102:9000/user/wj/data/.snapshot/s……// 快照和源文件使用相同数据块

    hdfs dfs -lsr /user/wj/data/.snapshot/
    
  3. 指定名称创建快照

    hdfs dfs -createSnapshot /user/wj/data miao170508
    
  4. 重命名快照

    hdfs dfs -renameSnapshot /user/wj/data/ miao170508 wj111
    
  5. 列出当前用户所有可快照目录

    hdfs lsSnapshottableDir
    
  6. 比较两个快照目录的不同之处

    hdfs snapshotDiff /user/wj/data/  .  .snapshot/wj170508
    
  7. 恢复快照

    hdfs dfs -cp /user/wj/input/.snapshot/s20170708-134303.027 /user
    

6.4 回收站

6.4.1 默认回收站

默认值 fs.trash.interval=0,0 表示禁用回收站,可以设置删除文件的存活时间

默认值 fs.trash.checkpoint.interval=0,检查回收站的间隔时间

要求 fs.trash.checkpoint.interval <= fs.trash.interval

6.4.2 启用回收站

修改 core-site.xml,配置垃圾回收时间为 1 分钟

<property><name>fs.trash.interval</name><value>1</value>
</property>

6.4.3 查看回收站

回收站在集群中的路径:/user/wj/.Trash/….

6.4.4 修改访问垃圾回收站用户名称

进入垃圾回收站用户名称,默认是 dr.who,修改为 wj 用户

[core-site.xml]

<property><name>hadoop.http.staticuser.user</name><value>wj</value>
</property>

6.4.5 进入回收站

通过程序删除的文件不会经过回收站,需要调用 moveToTrash() 才进入回收站

Trash trash = New Trash(conf);
trash.moveToTrash(path);

6.4.6 恢复回收站数据

hadoop fs -mv /user/wj/.Trash/Current/user/wj/input    /user/wj/input

6.4.7清空回收站

hdfs dfs -expunge

这篇关于HDFS 系列六:DataNode 工作机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/748848

相关文章

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte