hadoop深入研究:(五)——Archives
转载请注明来源地址:http://blog.csdn.net/lastsweetop/article/details/9123155
简介
用法
[hadoop@namenode ~]$hadoop fs -lsr
drwxr-xr-x - hadoop supergroup 0 2013-06-20 12:37 /user/hadoop/har
drwxr-xr-x - hadoop supergroup 0 2013-05-23 11:35 /user/hadoop/input
-rw-r--r-- 2 hadoop supergroup 888190 2013-05-23 11:35 /user/hadoop/input/1901
-rw-r--r-- 2 hadoop supergroup 888978 2013-05-23 11:35 /user/hadoop/input/1902
-rw-r--r-- 2 hadoop supergroup 293 2013-06-02 17:44 /user/hadoop/news.txt
hadoop archive -archiveName input.har -p /user/hadoop/ input har
archiveName指定archive的文件名,-p代表父目录,可以把多个目录文件放到archive里,我们来看下创建好的har文件。
Found 1 items
drwxr-xr-x - hadoop supergroup 0 2013-06-20 12:38 /user/hadoop/har/input.har
[hadoop@namenode ~]$hadoop fs -ls har/input.har
Found 4 items
-rw-r--r-- 2 hadoop supergroup 0 2013-06-20 12:38 /user/hadoop/har/input.har/_SUCCESS
-rw-r--r-- 5 hadoop supergroup 272 2013-06-20 12:38 /user/hadoop/har/input.har/_index
-rw-r--r-- 5 hadoop supergroup 23 2013-06-20 12:38 /user/hadoop/har/input.har/_masterindex
-rw-r--r-- 2 hadoop supergroup 1777168 2013-06-20 12:38 /user/hadoop/har/input.har/part-0
这里可以看到har文件包括,两个索引文件,多个part文件,这里只显示一个。part文件是多个原文件的集合,根据index文件去找到原文件。
[hadoop@namenode ~]$hadoop fs -lsr har:///user/hadoop/har/input.har
drwxr-xr-x - hadoop supergroup 0 2013-05-23 11:35 /user/hadoop/har/input.har/input
-rw-r--r-- 2 hadoop supergroup 888978 2013-05-23 11:35 /user/hadoop/har/input.har/input/1902
-rw-r--r-- 2 hadoop supergroup 888190 2013-05-23 11:35 /user/hadoop/har/input.har/input/1901
还可以象普通文件系统那样访问har下一级的文件
[hadoop@namenode ~]$hadoop fs -lsr har:///user/hadoop/har/input.har/input
-rw-r--r-- 2 hadoop supergroup 888978 2013-05-23 11:35 /user/hadoop/har/input.har/input/1902
-rw-r--r-- 2 hadoop supergroup 888190 2013-05-23 11:35 /user/hadoop/har/input.har/input/1901
如果要远程访问的话可以使用以下命令
[hadoop@namenode ~]$hadoop fs -lsr har://hdfs-namenode:9000/user/hadoop/har/input.har/input
-rw-r--r-- 2 hadoop supergroup 888978 2013-05-23 11:35 /user/hadoop/har/input.har/input/1902
-rw-r--r-- 2 hadoop supergroup 888190 2013-05-23 11:35 /user/hadoop/har/input.har/input/1901
har开头说明时har文件系统,hdfs-域名:端口,har文件系统进行转换直到har文件末位,例子中会转换为hdfs://namenode:9000/user/hadoop/har/input.har,剩余的部分仍然用archive方式打开:input
[hadoop@namenode ~]$hadoop fs -rmr har/input.har
Deleted hdfs://192.168.115.5:9000/user/hadoop/har/input.har
限制
archive文件有一些限制条件:
1.创建archive文件要消耗和原文件一样多的硬盘空间
2.archive文件不支持压缩,尽管archive文件看起来象已经被压缩过了。
3.archive文件一旦创建就无法改变,这就意味这你要改一些东西的话,你需要创新创建archive文件
4.虽然解决了namenode的内存空间问题,但是在执行mapreduce时,会把多个小文件交给同一个mapreduce去split,这样明显是低效的
解决namenode内存的问题可以参照之前的文章中的hdfs federation。
hadoop深入研究:(五)——Archives的更多相关文章
- hadoop深入研究:(七)——压缩
转载请标明出处:hadoop深入研究:(七)——压缩 文件压缩主要有两个好处,一是减少了存储文件所占空间,另一个就是为数据传输提速.在hadoop大数据的背景下,这两点尤为重要,那么我现在就先来了解下 ...
- Hadoop生态圈-hive五种数据格式比较
Hadoop生态圈-hive五种数据格式比较 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- hadoop深入研究:(十三)——序列化框架
hadoop深入研究:(十三)--序列化框架 Mapreduce之序列化框架(转自http://blog.csdn.net/lastsweetop/article/details/9376495) 框 ...
- Nginx源码研究五:NGINX的配置信息管理
配置信息是nginx系统重要的组成部分,配置信息的使用,实际上包含两层,一层是用户针对参数定义了值,例如下面nginx参数文件中的 keepalive_timeout 65,还有一部分是用户没有定义值 ...
- Hadoop(十五)MapReduce程序实例
一.统计好友对数(去重) 1.1.数据准备 joe, jon joe , kia joe, bob joe ,ali kia, joe kia ,jim kia, dee dee ,kia dee, ...
- Hadoop学习笔记五
一.uber(u:ber)模式 MapReduce以Uber模式运行时,所有的map,reduce任务都在一个jvm中运行,对于小的mapreduce任务,uber模式的运行将更为高效. uber模式 ...
- Hadoop 系列(五)—— Hadoop 集群环境搭建
一.集群规划 这里搭建一个 3 节点的 Hadoop 集群,其中三台主机均部署 DataNode 和 NodeManager 服务,但只有 hadoop001 上部署 NameNode 和 Resou ...
- dedecms代码研究五
上一次留几个疑问: 1)DedeTagParse类LoadTemplet方法. 2)MakeOneTag到底在搞什么. 从DedeTagParse开始前面,我们一直在dedecms的外围,被各种全局变 ...
- hadoop拾遗(五)---- mapreduce 输出到多个文件 / 文件夹
今天要把HBase中的部分数据转移到HDFS上,想根据时间戳来自动输出到以时间戳来命名的每个文件夹下.虽然以前也做过相似工作,但有些细节还是忘记了,所以这次写个随笔记录一下. package com. ...
随机推荐
- QT5.6所开放的7个新模块(图表,虚拟键盘,性能分析,静态分析,测试正好,2D渲染)
The modules newly available to open source users are: Qt Charts Qt Data Visualization Qt Virtual Key ...
- zk create() 方法
create() $path = $zkh->create($req_path, $data); $path = $zkh->create($req_path, $data, 'flags ...
- struts2_4_为Action属性注入值
Struts2为Action中的属性提供了依赖注入功能,在struts2的配置文件里,能够为Action中的属性注入值,属性必须提供setter方法. 1)employeeAction类: publi ...
- C++多态原理
C++的多态性是通过动态绑定实现的 非虚函数是在编译时绑定的; 通过对象进行的函数(虚函数,非虚函数)也是编译时绑定的; C++编译器在编译的时候,要确定每个对象调用的函数(要求此函数是非虚函数)的地 ...
- 分享非常有用的Java程序(关键代码)(八)---Java InputStream读取网络响应Response数据的方法!(重要)
原文:分享非常有用的Java程序(关键代码)(八)---Java InputStream读取网络响应Response数据的方法!(重要) Java InputStream读取数据问题 ======== ...
- Python多线程下的_strptime问题
Python多线程下的_strptime问题 由于Python的datetime和time中的_strptime方法不支持多线程,运行时会报错: import datetimeimport threa ...
- MinGW是什么
MinGW是什么? MinGW是建立在gcc和binutils项目上的,用来编译和连接代码,使之运行在windows系统上: 提供c.c++和fortran编译器和相关工具: MinGW=Minima ...
- 浙江大学PAT上机题解析之3-05. 求链式线性表的倒数第K项
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字. 输入格式说明: 输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理). 输出 ...
- 【leetcode】Single Number II
int singleNumber(int A[], int n) { int once = 0; int twice = 0; int three = 0; for (int i = 0; i < ...
- JS中setTimeout()的使用方法具体解释
1. SetTimeOut() 1.1 SetTimeOut()语法样例 1.2 用SetTimeOut()运行Function ...