Hadoop权威指南:HDFS-Hadoop存档

  • 每个文件按块方式存储, 每个块的元数据存储在namenode的内存中
  • Hadoop存档文件或HAR文件是一个更高效的文件存档工具,它将文件存入HDFS块,在减少内存使用的同时,允许对文件进行透明地访问
  • Hadoop存档文件可以用作MapReduce的输入

使用Hadoop存档工具

  • Hadoop存档是通过archive工具根据一组文件创建而来的,该存档工具运行一个MapReduce作业来并行处理所有的输入文件
  • 使用archive

hadoop archive -archiveName files.har /my/files /my

  • 第一个选项是存档文件的名称,这里是第一个参数 file.har
  • 第二个参数是需要存档的文件
  • 第三个参数是HAR文件的输出目录
  • 列出HAR文件中的文件

hadoop fs -ls /my/files.har

  • 递归列出HAR文件中的文件

    hadoop fs -lsr /my/files.har

  • 其他文件系统中引用HAR文件,则需要使用不同的URI路径格式,示例如下

  hadoop fs -lsr har:///my/files.har/my/files/dir
hadoop fs -lsr har://hdfs-localhost:8020/my/files.har/my/files/dir

第二种格式仍以har方案标示一个HAR文件系统,但是用hdfs指定基础文件系统方案的权限

  • 要删除HAR文件,需要使用递归格式进行删除,因为对于基础文件系统来说,HAR文件是一个目录

    hadoop fs -rmr /my/files.har

不足

  • 新建一个存档文件会创建原始文件的一个副本
  • 一旦创建,不能修改
  • InputFormat不知道文件已经存档
05-07 15:47