赞
踩
集群内部文件拷贝scp,格式:
scp -r 文件 root@node2:/export/
跨集群之间的数据拷贝distcp,格式:
bin/hadoop distcp hdfs://node1:8020/文件名 hdfs://cluster2:9000/
格式: hadoop archive -archiveName name -p <parent> <src>* <dest>
-archiveName指定创建的存档的名称,文件扩展名应该是*.har。 -p:指定文件存档文件(src)的相对路径。
例如:如果你只想存档一个目录/input下的所有文件:
hadoop archive -archiveName test.har -p /input /outputdir
这样就会在/outputdir目录下创建一个名为test.har的存档文件。
首先我们来看下创建好的har文件。使用如下命令:
hadoop fs -ls /outputdir/test.har
这里可以看到har文件包括:两个索引文件,多个part文件(本例只有一个)以及一个标识成功与否的文件。part文件是多个原文件的集合,根据index文件去找到原文件。
例如上述的三个小文件1.txt 2.txt 3.txt内容分别为1,2,3。进行archive操作之后,三个小文件就归档到test.har里的part-0一个文件里。
archive作为文件系统层暴露给外界。所以所有的fs shell命令都能在archive上运行,但是要使用不同的URI。Hadoop Archives的URI是:
har://scheme-hostname:port/archivepath/fileinarchive
scheme-hostname格式为hdfs-域名:端口,如果没有提供scheme-hostname,它会使用默认的文件系统。这种情况下URI是这种形式:
har:///archivepath/fileinarchive
如果用har,uri去访问的话,索引、标识等文件就会隐藏起来,只显示创建档案之前的原文件:
按顺序解压存档(串行):
Hadoop fs -cp har:///user/zoo/foo.har/dir1 hdfs:/user/zoo/newdir
要并行解压存档,请使用DistCp:
hadoop distcp har:///user/zoo/foo.har/dir1 hdfs:/user/zoo/newdir
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。