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文件。
hadoop文件系统上的小文件合并-Hadoop Archives的更多相关文章
- Hadoop实战项目:小文件合并
项目背景 在实际项目中,输入数据往往是由许多小文件组成,这里的小文件是指小于HDFS系统Block大小的文件(默认128M),早期的版本所定义的小文件是64M,这里的hadoop-2.2.0所定义的小 ...
- Hadoop MapReduce编程 API入门系列之小文件合并(二十九)
不多说,直接上代码. Hadoop 自身提供了几种机制来解决相关的问题,包括HAR,SequeueFile和CombineFileInputFormat. Hadoop 自身提供的几种小文件合并机制 ...
- Hadoop经典案例(排序&Join&topk&小文件合并)
①自定义按某列排序,二次排序 writablecomparable中的compareto方法 ②topk a利用treemap,缺点:map中的key不允许重复:https://blog.csdn.n ...
- Hadoop记录-hive merge小文件
1. Map输入合并小文件对应参数:set mapred.max.split.size=256000000; #每个Map最大输入大小set mapred.min.split.size.per.no ...
- hive小文件合并设置参数
Hive的后端存储是HDFS,它对大文件的处理是非常高效的,如果合理配置文件系统的块大小,NameNode可以支持很大的数据量.但是在数据仓库中,越是上层的表其汇总程度就越高,数据量也就越小.而且这些 ...
- HDFS操作及小文件合并
小文件合并是针对文件上传到HDFS之前 这些文件夹里面都是小文件 参考代码 package com.gong.hadoop2; import java.io.IOException; import j ...
- Hive merge(小文件合并)
当Hive的输入由非常多个小文件组成时.假设不涉及文件合并的话.那么每一个小文件都会启动一个map task. 假设文件过小.以至于map任务启动和初始化的时间大于逻辑处理的时间,会造成资源浪费.甚至 ...
- hive优化之小文件合并
文件数目过多,会给HDFS带来压力,并且会影响处理效率,可以通过合并Map和Reduce的结果文件来消除这样的影响: set hive.merge.mapfiles = true ##在 map on ...
- MR案例:小文件合并SequeceFile
SequeceFile是Hadoop API提供的一种二进制文件支持.这种二进制文件直接将<key, value>对序列化到文件中.可以使用这种文件对小文件合并,即将文件名作为key,文件 ...
随机推荐
- 在eclipse中搜索 datasource.xml 文件:
- Web框架的原理详情
Web框架的原理 Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. socket服务 ...
- 【TTS】文本转语音?如何不调用第三方api来实现,使用pyttsx3
@ 目录 前言 安装pyttsx3 实现TTS接口 后言 前言 本次的实现需求有点困难,所以也就记录下来,别到时候都忘了. 首先先不说正题,有兴趣的可以看一看: 1.目标是实现一个可以传一个文本就返回 ...
- GAN量化评估方法——IS(Inception Score)和FID(Frechet Inception Distance score)
生成模型产生的是高维的复杂结构数据,它们不同于判别模型,很难用简单的指标来评估模型的好坏.下面介绍两种当前比较流行的评估生成模型的指标(仅判别图像):IS(Inception Score)和FID(F ...
- Jmeter逻辑控制器之If Controller的使用解析
一.If Controller概述 类似于编程语言中if语句,根据给定表达式的值决定是否执行该节点下的子节点,表达式的值 为true则执行,为false则不执行,默认使用javascript语法进行判 ...
- 《Python 测试开发技术栈—巴哥职场进化记》—每日站会的意义
上文<Python测试开发技术栈-巴哥职场进化记>-一道作业题我们讲到华哥给巴哥出了一道作业题,让巴哥用Python实现记录日志的功能,巴哥历经"千辛万苦",终于做出了 ...
- 2020.5.22 第二篇 Scrum冲刺博客
Team:银河超级无敌舰队 Project:招新通 项目冲刺集合贴:链接 目录 一.每日站立会议 二.项目燃尽图 三.签入记录 3.1 代码/文档签入记录 3.2 主要代码截图 3.3 程序运行截图 ...
- Windows Server 2012 两台服务器文件同步
下载cwRsyncServer软件安装(这是Windows下的文件同步软件) 一.(1)在文件客户端服务器安装该软件,找到安装位置下的rsyncd.conf,修改配置文件(注意在Windows下输入位 ...
- JavaScript对象原型链的学习
1.构造函数和原型 1.1对象的三种创建方式 字面量方式 var obj = {}; new关键字 var obj = new Object(); 构造函数方式 function Person(nam ...
- 《MySQL数据库》MySQL ERRORLOG,BINLOG,SLOWLOG日志详解
前言 MySQL 经常出现启动错误或者执行错误等等,这个时候我们需要查询error日志 在数据库使用中,经常会出现需要恢复数据的情况,MySQL如果需要恢复数据的话需要开启binlog(二进制日志). ...