hadoop distcp踩坑记

本文记录了在使用Hadoop distcp工具进行文件拷贝时遇到的几个问题及解决方案,包括缺少jar包、NameNode安全模式、队列设置等,并提供了相应的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

distcp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部分文件的拷贝。

 

1、在nn1上执行

hadoop distcp hdfs://source-nn1:9000/user/xxx.txt hdfs://dest-nn1:9000/

结果报错如下:

19/10/19 17:34:17 INFO tools.DistCp: Input Options: DistCpOptions{atomicCommit=false, syncFolder=false, deleteMissing=false, ignoreFailures=false, maxMaps=20, sslConfigurationFile='null', copyStrategy='uniformsize', sourceFileListing=null, sourcePaths=[hdfs://source-nn1:9000/user/xxx.txt], targetPath=hdfs://dest-nn1:9000/, targetPathExists=true, preserveRawXattrs=false}
19/10/19 17:34:18 INFO mapreduce.Cluster: Failed to use org.apache.hadoop.mapred.YarnClientProtocolProvider due to error: java.lang.reflect.InvocationTargetException
19/10/19 17:34:18 ERROR tools.DistCp: Exception encountered 
java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.
	at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:120)
	at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:82)
	at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:75)
	at org.apache.hadoop.tools.DistCp.createMetaFolderPath(DistCp.java:379)
	at org.apache.hadoop.tools.DistCp.execute(DistCp.java:155)
	at org.apache.hadoop.tools.DistCp.run(DistCp.java:121)
	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
	at org.apache.hadoop.tools.DistCp.main(DistCp.java:401)

查阅资料,发现是缺少这样的jar包hadoop-mapreduce-client-common。但是查看之后发现,/home/work/hadoopcluster/hadoop/share/hadoop/map

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值