Hadoop存档-13

1)理论概述

每个文件均按块存储,每个块的元数据存储在namenode的内存中,因此hadoop存储小文件会非常低效。因为大量的小文件会耗尽namenode中的大部分内存。但注意,存储小文件所需要的磁盘容量和存储这些文件原始内容所需要的磁盘空间相比也不会增多。例如,一个1MB的文件以大小为128MB的块存储,使用的是1MB的磁盘空间,而不是128MB。

Hadoop存档文件或HAR文件,是一个更高效的文件存档工具,它将文件存入HDFS块,在减少namenode内存使用的同时,允许对文件进行透明的访问。具体说来,Hadoop存档文件可以用作MapReduce的输入。

 

也就是说,如下图,假如datanode里存了好多小数据量的东西,虽然这些东西不会占用太大的datanode内存,但是它们每份都在namenode内存里记录着,是很耗namenode内存的,Hadoop存档,就是把这些小东西进行整合为一块,让namenode以为它们是一个东西,在namenode里就记录着一份,其实它们在datanode里还是分开存的.大大节省了namenode的内存空间,就是起这么个作用.

实际操作

根目录下有很多文件,把它们归档为一份

archive 是归档的意思   -archiveName后面跟要归档为什么名字,后缀必须以har结尾.

-p必须加,这是这个命令的规定   后面跟要归档文件的路径   最后一个是把归档完的文件存哪儿

执行这个命令必须yarn启动起来,因为它执行的是mapreduce程序

hadoop archive -archiveName myhar.tar -p / / 

查看归档

 hadoop fs -lsr /myhar.har     

 hadoop fs -lsr har:///myhar.har   这个可以查看到具体har文件里有哪些文件

也可以把归档里面的文件拷贝出来,或者mv移动出来,归档完后其实就可以把原来的文件删除掉了,这样就不占用namenode的内存了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值