zoukankan      html  css  js  c++  java
  • hadoop文件系统上的小文件合并-Hadoop Archives

    1. 什么是Hadoop archives

    Hadoop archives是特殊的档案格式。一个Hadoop archive对应一个文件系统目录。 Hadoop archive的扩展名是.har。Hadoop archive包含元数据(形式是_index和_masterindx)和数据(part-)文件。_index文件包含了档案中的文件的文件名和位置信息。

    2. 创建archives

    创建archives是一个Map/Reduce job。你应该在map reduce集群上运行这个命令。
    用法:hadoop archive -archiveName name -p <parent> <src>* <dest>

    (1) -archiveName用来指定要创建的archive的文件名,必须以.har结尾,例如:foo.har;
    (2) 参数"-p"为src path的前缀

    示例1:

    hadoop archive -archiveName IotBillBackup201805.har -p /IotBillBackup201805 /har/IotBillBackup201805
    

    在上面的例子中,/IotBillBackup201805目录下的所有文件会被归档到这个文件系统目录下/har/IotBillBackup201805/IotBillBackup201805.har。
    示例2:

    hadoop archive -archiveName foo.har -p /user/hadoop dir1 dir2 /user/zoo/
    

    在上面的例子中,/user/hadoop/dir1 和 /user/hadoop/dir2 会被归档到这个文件系统目录下/user/zoo/foo.har。
    注意:当创建archive时,源文件不会被更改或删除

    3. 访问archives

    hdfs dfs -ls har:///har/IotBillBackup201805/IotBillBackup201805.har
    hdfs dfs -ls har:///user/zoo/foo.har
    

    4. 解压archives

    (1) 串行解压

    # 把IotBillBackup201805.har中的文件全部解压到/IotBillBackup201805目录下
    hdfs dfs -cp har:///har/IotBillBackup201805/IotBillBackup201805.har/* hdfs:/IotBillBackup201805
    
    hdfs dfs -cp har:////user/hadoop/dir1 hdfs:/user/zop/newdir1
    hdfs dfs -cp har:////user/hadoop/dir2 hdfs:/user/zop/newdir2
    

    (2) 并行解压(Map/Reduce job),使用DistCp:

    hadoop distcp har:///har/IotBillBackup201805/IotBillBackup201805.har/* hdfs:/IotBillBackup201805
    

    启动一个Mapreduce任务来完成解压

    5. archives的局限性

    (1) 创建archive文件要消耗和原文件一样多的硬盘空间;
    (2) archive文件不支持压缩,尽管archive文件看起来象已经被压缩过了;
    (3) archive文件一旦创建就无法改变,这就意味这你要改一些东西的话,你需要重新创建archive文件。

  • 相关阅读:
    在Html中使用echarts图表
    html+css模拟微信对话
    解决React 的<img >src使用require的方式图片显示不出来,展示的是[object Module]的问题
    easygui入门
    python安装easygui
    关于gcc、make和CMake的区别
    FreeRTOS使用心得。
    C/C++整数输出位不足前补0方法
    AngularJS前端分页 + PageHelper后端分页
    AngularJS常见指令
  • 原文地址:https://www.cnblogs.com/leekeggs/p/9347364.html
Copyright © 2011-2022 走看看