将数据从一个群集复制到另一个群集时,Hadoop Distcp会中止

问题描述 投票:2回答:3

我试图将分区的Hive表的数据从一个集群复制到另一个集群。我使用distcp来复制数据,但数据基础数据是分区的配置单元表。我使用了以下命令。

hadoop distcp -i {src} {tgt}

但是当表被分区时,目录结构是根据分区表创建的。因此,它显示错误创建重复和中止作业。

org.apache.hadoop.toolsCopyListing $ DulicateFileException:文件会导致重复。中止

我也使用-skipcrccheck -update -overwrite但没有用。

如何将表的数据从分区文件路径复制到目标?

apache hadoop hive bigdata distcp
3个回答
0
投票

尝试使用此选项-strategy dynamic默认情况下,distcp使用uniformsize。


0
投票

检查以下设置以查看它们是否为false。将它们设置为true。

hive> set hive.mapred.supports.subdirectories;
hive.mapred.supports.subdirectories=false
hive> set mapreduce.input.fileinputformat.input.dir.recursive;
mapreduce.input.fileinputformat.input.dir.recursive=false

0
投票

hadoop distcp -Dmapreduce.map.memory.mb = 20480 -Dmapreduce.map.java.opts = -Xmx15360m -Dipc.client.fallback-to-simple-auth-allowed = true -Ddfs.checksum.type = CRC32C -m 500 \ -pb -update -delete {src} {target}

© www.soinside.com 2019 - 2024. All rights reserved.