【博学谷学习记录】超强总结,用心分享| HDFS的Arichive机制

1.背景

HDFS并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在NameNode占用内存,如果存在大量的小文件,它们会吃掉NameNode节点的大量内存。

Hadoop Archives可以有效的处理以上问题,它可以把多个文件归档成为一个文件,归档成一个文件后还可以透明的访问每一个文件。

2.介绍

2.1 概念

1、Arichive文件是一个打包文件,但是不会对文件进行压缩
2、Arichive文件归档之后,我们还可以透明的访问其中的每一个小文件
3、Archive主要解决HDFS不擅长存储小文件问题
4、Archive过程是一个MapReduce任务
5、Archive之后,原来的文件依然保留

2.2 操作

0、数据准备 
hadoop fs -mkdir /config
cd /export/server/hadoop-3.3.0/etc/hadoop
hadoop fs -put *.xml /config

1、创建一个归档文件
#将/config目录的所有文件进行归档(打包),打包后的文件命名为test.har,并且把打包后的test.har存放在/outputdir目录
hadoop archive -archiveName test.har -p /config  /outputdir

2、查看打包后的归档文件
hadoop fs -cat /outputdir/test.har/part-0

3、查看规定文件中所有小文件的名字
hadoop fs -ls har://hdfs-node1:8020/outputdir/test.har
hadoop fs -ls har:///outputdir/test.har     #如果客户端也是集群的某台主机,可以使用该简写方案

4、查看归档文件中某个小文件的内容
hadoop fs -cat har:///outputdir/test.har/core-site.xml

2.3 注意事项

1、Hadoop archives是特殊的档案格式。一个Hadoop archive对应一个文件系统目录。Hadoop archive的扩展名是*.har;

2、创建archives本质是运行一个Map/Reduce任务,所以应该在Hadoop集群上运行创建档案的命令,要提前启动Yarn集群;

3、创建archive文件要消耗和原文件一样多的硬盘空间;

4、archive文件不支持压缩,尽管archive文件看起来像已经被压缩过;

5、archive文件一旦创建就无法改变,要修改的话,需要创建新的archive文件。事实上,一般不会再对存档后的文件进行修改,因为它们是定期存档的,比如每周或每日;

6、当创建archive时,源文件不会被更改或删除;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值