做网站推广的技巧,网站开发外文参考文献,wordpress 媒体库 七牛,平面毕业设计作品网站小文件解决方案 背景Archive概述创建archive查看归档文件查看归档之后的样子查看归档文件之前的样子 提取archivearchive注意事项 背景
hdfs并不擅长存储小文件#xff0c;因为每个文件最少一个block#xff0c;每个block的元数据都会在namenode占用内存#xff0c;如果存在… 小文件解决方案 背景Archive概述创建archive查看归档文件查看归档之后的样子查看归档文件之前的样子 提取archivearchive注意事项 背景
hdfs并不擅长存储小文件因为每个文件最少一个block每个block的元数据都会在namenode占用内存如果存在大量的小文件它们会吃掉namenode大量内存。如下所示模拟小文件场景
Archive概述
hadoop archive可以有效地处理以上的问题它可以把多个文件归档成为一个文件归档成一个文件后还可以透明的访问每一个文件
创建archive
hdfs dfs -archive -archiveName archive.har /path/to/file.txt /path/to/archive.har -archiveName archive.har: 指定生成的归档文件名为archive.har。扩展名是*.har/path/to/directory/: 要归档的整个目录的路径/path/to/archive/: 归档文件的存储位置。多个文件进行归档操作的时候可以用hdfs dfs -archive -archiveName archive.har /path/to/file1.txt /path/to/file2.txt /path/to/archive/ 注意archive归档是通过MapReduce程序完成的需要启动yarn集群
查看归档文件
查看归档之后的样子
hadoop fs -ls /outputdir /test.har这里可以看到har文件包括两个索引文件多个part文件本例只有一个以及一个标识成功与否的文件。part文件是多个源文件的集合通过index文件可以去找到源文件 例如上述的三个小文件1.txt2.txt3.txt内容分别是123.进行archive操作之后三个小文件就归档到test.har里的part-0一个文件里。
查看归档文件之前的样子
在查看har文件的时候如果没有指定访问协议默认使用hdfs://此时所能看到的就是归档之后的样子。此外archive还提供了自己的har uri访问协议。如果用har uri去访问的话索引标识等文件就会隐藏起来只显示创建档案之前的原文件hadoop archives的uri是
har://scheme-hostname:port/archivepath/fileinarchive
scheme-hostname格式为hdfs-域名端口提取archive
按顺序解压存档串行
hadoop fs -cp har:///outputdir/test.har/* /smallfile1
# 要并行解压存档请使用DisCp对应大的归档文件可以提高效率
hadoop distcp har:///outputdir/test.har/* smallfile2archive注意事项