Hadoop distcp 用法/附避坑指南
Posted 二十六画生的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop distcp 用法/附避坑指南相关的知识,希望对你有一定的参考价值。
distcp作用是从hdfs复制一个或多个数据文件或数据目录到一个指定目录下。会启动Map任务去复制,不会启动Reduce任务。
语法:
$ hadoop distcp 配置参数(-pt -overwrite等)
hdfs:......源表1/dt=xxxx/* hdfs:......源表2/dt=xxxx/*
hdfs:......目的表/dt=xxxx
$ hive -e "select * from 目的表 where dt = 'xxxx'"
-
以上命令是把源表1和源表2的dt=xxxx下的所有数据文件和子目录复制到目的表的dt=xxxx路径下。
-
即使目的分区路径不存在也不会报错,distcp会自动创建目的分区路径和添加分区信息(目的表需要先存在)。
-
distcp有很多配置,比如复制时的最大网络带宽、最大map任务个数、是覆盖还是追加、是否保留源文件时间等等。
-
'-pt'的作用是保留源文件的修改时间(不然复制到目的路径下的文件的修时间就是复制完成时的时间)
-
'-overwrite'的作用是覆盖同名文件(不是覆盖路径),如果目的路径下不存在该源文件则是复制过来!(目的路径下的其他文件依然存在且无变化!)
-
'-update'的作用是修改,如果目的路径已存在与源路径下的某个文件名和大小均相同的文件,则不再复制该文件(不管文件内容和文件修改时间是否变化)。只会复制目的路径下不存在文件、同名且文件大小不一致的文件。目的路径下的其他文件依然存在且无变化!
实例:请务必仔细体会:
具体实例请关注我的微信公众号【程序员实用技能】
「欢迎关注,一起学习,一起进步」
历史文章:
以上是关于Hadoop distcp 用法/附避坑指南的主要内容,如果未能解决你的问题,请参考以下文章