Hadoop3:HDFS存储优化之小文件归档

一、情景说明

我们知道,NameNode存储一个文件元数据,默认是150byte大小的内存空间。
那么,如果出现很多的小文件,就会导致NameNode的内存占用。

但注意,存储小文件所需要的磁盘容量和数据块的大小无关。
例如,一个1MB的文件设置为128MB的块存储,实际使用的是1MB的磁盘空间,而不是128MB

二、解决方案

HDFS存档文件或HAR文件来优化这个问题
具体说来,HDFS存档文件对内还是一个一个独立文件,对NameNode而言却是一个整体,减少了NameNode的内存。
在这里插入图片描述
它的底层,其实是一个MR程序。
你可以简单理解为,它就是一个压缩程序。

三、案例

将/input目录下的文件归档成input.har文件,并存于根目录。
在这里插入图片描述
归档文件

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/*    /

解压归档文件中一个文件

hadoop fs -cp har:///output/input.har/hello.txt /

在这里插入图片描述在这里插入图片描述

相关推荐

  1. Hadoop集成对象存储HDFS磁盘文件存储

    2024-07-18 19:52:01       55 阅读
  2. HadoopHDFS分布式文件系统

    2024-07-18 19:52:01       27 阅读
  3. Hadoop-HDFS-S3HDFS存储对象 S3 的对比

    2024-07-18 19:52:01       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 19:52:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 19:52:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 19:52:01       58 阅读
  4. Python语言-面向对象

    2024-07-18 19:52:01       69 阅读

热门阅读

  1. 正则表达式

    2024-07-18 19:52:01       19 阅读
  2. 框架

    框架

    2024-07-18 19:52:01      19 阅读
  3. opencv—常用函数学习_“干货“_5

    2024-07-18 19:52:01       24 阅读
  4. 光伏储能剑指何方

    2024-07-18 19:52:01       20 阅读