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文件。

hadoop文件系统上的小文件合并-Hadoop Archives的更多相关文章

  1. Hadoop实战项目:小文件合并

    项目背景 在实际项目中,输入数据往往是由许多小文件组成,这里的小文件是指小于HDFS系统Block大小的文件(默认128M),早期的版本所定义的小文件是64M,这里的hadoop-2.2.0所定义的小 ...

  2. Hadoop MapReduce编程 API入门系列之小文件合并(二十九)

    不多说,直接上代码. Hadoop 自身提供了几种机制来解决相关的问题,包括HAR,SequeueFile和CombineFileInputFormat. Hadoop 自身提供的几种小文件合并机制 ...

  3. Hadoop经典案例(排序&Join&topk&小文件合并)

    ①自定义按某列排序,二次排序 writablecomparable中的compareto方法 ②topk a利用treemap,缺点:map中的key不允许重复:https://blog.csdn.n ...

  4. Hadoop记录-hive merge小文件

    1. Map输入合并小文件对应参数:set mapred.max.split.size=256000000;  #每个Map最大输入大小set mapred.min.split.size.per.no ...

  5. hive小文件合并设置参数

    Hive的后端存储是HDFS,它对大文件的处理是非常高效的,如果合理配置文件系统的块大小,NameNode可以支持很大的数据量.但是在数据仓库中,越是上层的表其汇总程度就越高,数据量也就越小.而且这些 ...

  6. HDFS操作及小文件合并

    小文件合并是针对文件上传到HDFS之前 这些文件夹里面都是小文件 参考代码 package com.gong.hadoop2; import java.io.IOException; import j ...

  7. Hive merge(小文件合并)

    当Hive的输入由非常多个小文件组成时.假设不涉及文件合并的话.那么每一个小文件都会启动一个map task. 假设文件过小.以至于map任务启动和初始化的时间大于逻辑处理的时间,会造成资源浪费.甚至 ...

  8. hive优化之小文件合并

    文件数目过多,会给HDFS带来压力,并且会影响处理效率,可以通过合并Map和Reduce的结果文件来消除这样的影响: set hive.merge.mapfiles = true ##在 map on ...

  9. MR案例:小文件合并SequeceFile

    SequeceFile是Hadoop API提供的一种二进制文件支持.这种二进制文件直接将<key, value>对序列化到文件中.可以使用这种文件对小文件合并,即将文件名作为key,文件 ...

随机推荐

  1. 在eclipse中搜索 datasource.xml 文件:

  2. Web框架的原理详情

    Web框架的原理 Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. socket服务 ...

  3. 【TTS】文本转语音?如何不调用第三方api来实现,使用pyttsx3

    @ 目录 前言 安装pyttsx3 实现TTS接口 后言 前言 本次的实现需求有点困难,所以也就记录下来,别到时候都忘了. 首先先不说正题,有兴趣的可以看一看: 1.目标是实现一个可以传一个文本就返回 ...

  4. GAN量化评估方法——IS(Inception Score)和FID(Frechet Inception Distance score)

    生成模型产生的是高维的复杂结构数据,它们不同于判别模型,很难用简单的指标来评估模型的好坏.下面介绍两种当前比较流行的评估生成模型的指标(仅判别图像):IS(Inception Score)和FID(F ...

  5. Jmeter逻辑控制器之If Controller的使用解析

    一.If Controller概述 类似于编程语言中if语句,根据给定表达式的值决定是否执行该节点下的子节点,表达式的值 为true则执行,为false则不执行,默认使用javascript语法进行判 ...

  6. 《Python 测试开发技术栈—巴哥职场进化记》—每日站会的意义

    上文<Python测试开发技术栈-巴哥职场进化记>-一道作业题我们讲到华哥给巴哥出了一道作业题,让巴哥用Python实现记录日志的功能,巴哥历经"千辛万苦",终于做出了 ...

  7. 2020.5.22 第二篇 Scrum冲刺博客

    Team:银河超级无敌舰队 Project:招新通 项目冲刺集合贴:链接 目录 一.每日站立会议 二.项目燃尽图 三.签入记录 3.1 代码/文档签入记录 3.2 主要代码截图 3.3 程序运行截图 ...

  8. Windows Server 2012 两台服务器文件同步

    下载cwRsyncServer软件安装(这是Windows下的文件同步软件) 一.(1)在文件客户端服务器安装该软件,找到安装位置下的rsyncd.conf,修改配置文件(注意在Windows下输入位 ...

  9. JavaScript对象原型链的学习

    1.构造函数和原型 1.1对象的三种创建方式 字面量方式 var obj = {}; new关键字 var obj = new Object(); 构造函数方式 function Person(nam ...

  10. 《MySQL数据库》MySQL ERRORLOG,BINLOG,SLOWLOG日志详解

    前言 MySQL 经常出现启动错误或者执行错误等等,这个时候我们需要查询error日志 在数据库使用中,经常会出现需要恢复数据的情况,MySQL如果需要恢复数据的话需要开启binlog(二进制日志). ...