hadoop archive 详解《转载》

hadoop archive 详解《转载》

  (2016-05-06 15:10:12)
   
1.hadoop Archive的作用是什么?
2.怎么使用hadoop Archive?
3.怎么查找Archive文件?
4.怎样解压Archive文件?
5.本文还介绍了哪些命令?






概述
所有的Hadoop命令都通过bin/hadoop脚本调用。在没有任何参数的情况下,运行Hadoop脚本将打印该命令描述。

[Bash shell]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
[hduser@hadoop3 hadoop-2.4.1]$ bin /hadoop
Usage: hadoop [--config confdir] COMMAND
        whereCOMMAND is one of:
   fs                  run a generic filesystem user client
   version             print the version
   jar           run a jar file
   checknative[-a|-h]  check native hadoop and compressionlibraries availability
   distcpcopy file or directories recursively
   archive-archiveName NAME -p * create a hadoop archive
   classpath           prints the class path needed to get the
                        Hadoopjar and the required libraries
   daemonlog           get /set the log level for each daemon
  or
   CLASSNAME           run the class named CLASSNAME
 
Most commands print help when invoked w /o parameters.



字段 描述
--config confdir 配置文件目录,默认是:${HADOOP_HOME}/conf。
--loglevel loglevel 日志级别,有效的日志级别有:FATAL, ERROR, WARN, INFO, DEBUG, and TRACE. 默认是INFO。
通用选项
通用项 Description
-archives 用逗号分隔计算中未归档的文件。 仅仅针对JOB。
-conf 制定应用程序的配置文件Specify an application configuration file.
-D = 使用给定的属性值。
-files 用逗号分隔的文件,拷贝到Map reduce机器,仅仅针对JOB
-jt or 指定一个ResourceManager. 仅仅针对JOB。
-libjars 将用逗号分隔的jar路径包含到classpath中去,仅仅针对JOB。


执行所有命令都是通过hadoop shell的命令的,可以分为用户命令和管理员命令。



用户命令 用于Hadoop集群用户命令。

Archive hadoop Archive是一个高效地将小文件放入HDFS块中的文件存档文件格式,它能够将多个小文件打包成一个后缀为.har文件,这样减少namenode内存使用的同时,仍然允许对文件进行透明的访问。


hadoop <wbr>archive <wbr>详解《转载》 


hadoop Archive目录包含元数据文件( _index 和 _masterindex)和数据文件(part-*),这个_index文件包含了所有文件的名称和他对应part文件的位置。

(1)怎么使用Archive
使用:hadoop archive -archiveName name -p [-r ] *

-archiveName 你需要创建的archive的文件名, 例如:foo.har. 名字应该用*.har后缀。是指定Archive文件的相对路径,例如:-p /foo/bar a/b/c e/f/g
这里 /foo/bar是a/b/c和e/f/g两个相对路径的福父路径. 注意:Archive是MapReduce创建了。所以要在map reduce集群环境下运行它。

-r  指示所需的复制因子;如果该可选参数未指定,将使用10的复制因子。

例如:将/user/fish/arch/test1目录下的文件归档到/user/tom/test33文件夹下:hadoop archive -archiveName test.har -p  /user/fish  arch/test1/  test2
例如:使用通配符,将/user/fish/2015 10,11,12月归档到/user/test33文件夹下:

hadoop archive -archiveName combine.har -p /user/fish2015 1[0-2] /user/test33

例如:不指定归档目录,直接归档parent目录:/user/fish/目录到/user/test33文件夹下:
hadoop archive -archiveName combine.har -p /user/fish /user/test33


例如:归档多个目录,归档/user/fish/目录下的111,222,333目录到/user/test33文件夹下:
hadoop archive -archiveName combine.har -p /user/fish/ 111 222 333 /user/test33


(2)怎么查找Archive文件

[Bash shell]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
11
[root@hadoopcluster79 bin] #./hadoop fs -ls /test2/test.har/
Found 4 items
-rw-r--r--   3 rootsupergroup         0 2015-08-06 21:25 /test2/test .har /_SUCCESS
-rw-r--r--   5 rootsupergroup       306 2015-08-06 21:25 /test2/test .har /_index
-rw-r--r--   5 rootsupergroup        22 2015-08-06 21:25 /test2/test .har /_masterindex
-rw-r--r--   3 rootsupergroup    299521 2015-08-06 21:25 /test2/test .har /part-0
[root@hadoopcluster79 bin] #./hadoop fs -ls har:test2/test.har/
Found 3 items
-rw-r--r--   3 rootsupergroup    293563 2015-08-06 21:22 har: ///test2/test .har /bi-analy-all .log
-rw-r--r--   3 rootsupergroup      1953 2015-08-06 21:21 har: ///test2/test .har /file .txt
-rw-r--r--   3 rootsupergroup      4005 2015-07-16 17:34 har: ///test2/test .har /seq .txt



(3)怎样解压Archive文件


Since all the fs shell commands in the archives work transparently, unarchiving is just a matter of copying.
串行解压:
hdfs dfs -cp har:///user/zoo/foo.har/dir1 hdfs:/user/zoo/newdir
并行解压(Mapreduce),使用DistCp:
hadoop distcp har:///user/zoo/foo.har/dir1 hdfs:/user/zoo/newdir
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值