Hadoop命令之distcp参考

distcp 命令是用于集群内部或者集群之间拷贝数据的常用命令。

#顾名思义: dist即分布式, distcp即分布式拷贝。

  hadoop distcp [选项]  src_url  dest_url  

#常用选项

-m: 表示启用多少map

-delete: 删除已经存在的目标文件,不会删除源文件。这个删除是通过FS Shell实现的。所以如果垃圾回收机制启动的话,删除的目标文件会进入trash。

-i: 忽略失败。这个选项会比默认情况提供关于拷贝的更精确的统计, 同时它还将保留失败拷贝操作的日志,这些日志信息可以用于调试。最后,如果一个map失败了,但并没完成所有分块任务的尝试,这不会导致整个作业的失败。

-overwrite: 覆盖目标。如果一个map失败并且没有使用-i选项,不仅仅那些拷贝失败的文件,这个分块任务中的所有文件都会被重新拷贝。 所以这就是为什么要使用-i参数。

#新版本可以指定不同集群之间的拷贝。

1. 指定不同集群的用户名密码

   distcp -m 300 -su <user,paswd>  -du <user,paswd> src_url dest_url  

2. 本地hadoop客户端需要设置hadoop_site.xml 中的各种信息 fs.default.name 

    目前猜测是因为distcp是要启动map任务的所以需要知道namenode, jobtracker等信息。

#其他选项参考

-p[rbugp]       Preserve status, 
                       r: replication number
                       b: block size
                       u: user
                       g: group
                       p: permission
                       -p alone is equivalent to -prbugp
-p选项修改次数不会被保留。并且当指定 -update 时,更新的状态不会 被同步,除非文件大小不同(比如文件被重新创建)。

-i                     Ignore failures, 
-i这个选项会比默认情况提供关于拷贝的更精确的统计, 同时它还将保留失败拷贝操作的日志,这些日志信息可以用于调试。最后,如果一个map失败了,但并没完成所有分块任务的尝试,这不会导致整个作业的失败。

-log <logdir>          Write logs to <logdir>
-log选项为每个文件的每次尝试拷贝操作都记录日志,并把日志作为map的输出。 如果一个map失败了,当重新执行时这个日志不会被保留。

-m <num_maps>          Maximum number of simultaneous copies
-m选项指定了拷贝数据时map的数目。请注意并不是map数越多吞吐量越大。

-overwrite             Overwrite destination
-overwrite选项如果一个map失败并且没有使用-i选项,不仅仅那些拷贝失败的文件,这个分块任务中的所有文件都会被重新拷贝。 就像下面提到的,它会改变生成目标路径的语义,所以 用户要小心使用这个选项。

-update                Overwrite if src size different from dst size
-update选项像之前提到的,这不是"同步"操作。 执行覆盖的唯一标准是源文件和目标文件大小是否相同;如果不同,则源文件替换目标文件。 像 下面提到的,它也改变生成目标路径的语义, 用户使用要小心。

-f <urilist_uri>       Use list at <urilist_uri> as src list
-f选项这等价于把所有文件名列在命令行中。 urilist_uri 列表应该是完整合法的URI。

-filelimit <n>         Limit the total number of files to be <= n

-sizelimit <n>         Limit the total size to be <= n bytes

-delete                Delete the files existing in the dst but not in src

-mapredSslConf <f>     Filename of SSL configuration for mapper task

#

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容