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的内存了

相关文章:
-
2022-12-23
-
2021-10-31
-
2021-06-03
-
2021-06-18
-
2022-12-23
-
2022-12-23
-
2021-12-03
-
2021-12-15
猜你喜欢
-
2021-10-15
-
2021-08-10
-
2022-12-23
-
2022-12-23
-
2021-11-21
-
2021-12-02
-
2022-12-23
相关资源
-
下载
2021-06-05
-
下载
2021-09-10
-
下载
2022-12-19