当没有对原目录的写操作时(即停止了对源目录的写操作),可以使用以下命令来跨集群同步数据:hadoop distcp -delete -update -pugpb -m 10 -bandwidth 5hdfs://xx.xx/hdfs://yy.yy/ 当有对原目录的写操作时(即有对原目录的并发写操作),需要结合快照机制来同步数据:hadoop distcp -diff <from_snapshot> <...
DistCp (distributed copy) 就是一款跨集群的数据同步工具。 DistCp 可以用来做 hdfs 集群内部或集群之间的大规模的数据同步,由于在底层使用了 MapReduce 框架会通过多个 mapper 来拷贝需要拷贝的文件列表,其性能相比 hdfs dfs -get/put 等通过本地文件系统中转的数据同步方案,要高效快速很多。 同时由于 DistCp 可以...
一般说来通过观察ganglia,bytes_in、bytes_out达到上限就可以了。 2.Owner同步问题 DistCp工具的提示信息非常少,对于海量数据来说,DistCp初始阶段准备拷贝文件列表和结束阶段设定Owner同步耗时都比较长,但却没有任何提示信息。这是一个很奇怪的地方,拷贝过程中,mapred会打印进度信息到客户端,这时候可以看到百分比,等结束...
distcp -overwrite将覆盖文件,无论大小是否匹配。这是一个破坏性的过程,所以要确保你真的想要这样做。
DistCp工具的提示信息非常少,对于海量数据来说,DistCp初始阶段准备拷贝文件列表和结束阶段设定Owner同步耗时都比较长,但却没有任何提示信息。这是一个很奇怪的地方,拷贝过程中,mapred会打印进度信息到客户端,这时候可以看到百分比,等结束的时候可以看到过程中的一些统计信息。如果你设置了-p参数,此时就会处于一个停滞的...
-overwrite 覆盖目标 如果一个map失败并且没有使用-i选项,不仅仅那些拷贝失败的文件,这个分块任务中的所有文件都会被重新拷贝。 就像下面提到的,它会改变生成目标路径的语义,所以 用户要小心使用这个选项。 -update 如果源和目标的大小不一样则进行覆盖 像之前提到的,这不是"同步"操作。 执行覆盖的唯一标准是源文件...
目标端多出来的文件 -diff <arg> #通过快照diff信息进行数据的同步 -overwrite #以覆盖的方式进行拷贝,如果目标端文件已经存在,则直接覆盖 -p <arg> #拷贝数据时,扩展属性信息的保留,包括权限信息,块大小信息等等 -skipcrccheck #拷贝数据时是否跳过cheacksum的校验 -update #拷贝数据时,只拷贝相对于源端 ,目标...
- `-diff <arg>`:通过快照`diff`信息进行数据的同步。 - `-overwrite`:以覆盖的方式进行拷贝,如果目标端文件已经存在,则直接覆盖。 - `-p <arg>`:拷贝数据时,扩展属性信息的保留,包括权限信息、块大小信息等。 在实际使用时,请根据需求选择合适的选项和源、目标路径。©...
更好的办法应该是做到更加精细化的数据存储与管理,比如说非常典型的冷热数据的存储.对于巨大的长期无用的冷数据而言,应该用性能偏弱,但是磁盘空间富余的机器存,热数据则反之.数据的分类存储一定会带来数据的同步问题,假若我有2套集群,1个是线上的正在使用的集群,另外1个则是冷数据集群,我如何做定期的数据同步并且...
如果这不是你所需的,你可以补充使用-overwrite选项,在保持同样的目录结构的同时强制覆盖原有文件。你也可以使用-update 选项,仅更新发生变化的文件。用一个示例可以更好解释这个过程。如果我们修改了dir1子树中一个文件,我们能够通过运行以下命令将修改同步到dir2中:...