Hadoop 从本地复制到HDFS的每个文件的两个副本

Hadoop 从本地复制到HDFS的每个文件的两个副本,hadoop,mapreduce,hdfs,word-count,file-copying,Hadoop,Mapreduce,Hdfs,Word Count,File Copying,我在程序中使用fs.copyFromLocalFile(localpath,Hdfs dest path)。 每次从本地计算机复制文件之前,我都会删除HDFS上的目标路径。但在从本地路径复制文件并在其上实现map reduce后,会生成每个文件的两个副本,因此字数会加倍 明确地说,我有“Home/user/desktop/input/”作为我的本地路径,HDFS dest路径作为“/input” 当我检查HDFS目标路径时,即应用map reduce的文件夹,这就是结果 hduser@rall

我在程序中使用fs.copyFromLocalFile(localpath,Hdfs dest path)。 每次从本地计算机复制文件之前,我都会删除HDFS上的目标路径。但在从本地路径复制文件并在其上实现map reduce后,会生成每个文件的两个副本,因此字数会加倍

明确地说,我有“Home/user/desktop/input/”作为我的本地路径,HDFS dest路径作为“/input”

当我检查HDFS目标路径时,即应用map reduce的文件夹,这就是结果

 hduser@rallapalli-Lenovo-G580:~$ hdfs dfs -ls /input
 14/03/30 08:30:12 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  Found 4 items
 -rw-r--r--   1 hduser supergroup         62 2014-03-30 08:28 /input/1.txt
 -rw-r--r--   1 hduser supergroup         62 2014-03-30 08:28 /input/1.txt~
 -rw-r--r--   1 hduser supergroup         21 2014-03-30 08:28 /input/2.txt
 -rw-r--r--   1 hduser supergroup         21 2014-03-30 08:28 /input/2.txt~
当我以单个文件Home/user/desktop/Input/1.txt的形式提供输入时,不会产生任何问题,只复制单个文件。但是提到目录会产生一个问题 但是,通过命令行手动将每个文件放在HDFS Dest中不会产生任何问题

我不确定是否缺少文件系统的一个简单逻辑。但如果有人能告诉我哪里出了问题,那就太好了

我正在使用hadoop 2.2.0

我已尝试删除本地临时文件,并确保文本文件未打开。正在寻找避免复制临时文件的方法


提前感谢。

文件
/input/1.txt~/input/2.txt~
是由您在计算机中使用的文件编辑器创建的临时文件。您可以使用Ctrl+H查看本地目录中所有隐藏的临时文件并将其删除。

通过指定hadoop版本来修改问题。在copyFromLocal命令之后,您是否可以立即检查/input目录中的文件,而不是同时执行copyFromLocal和MAPREDUCT逻辑。@SACHINJOE I试图提供一个接口,在Map REDUCT执行过程中,可以在该接口中提供本地路径。我正在寻找一个可以避免临时文件的解决方案。是的,我知道临时文件是从本地目录获取的。我已经删除了它们,并确保这些文件没有在编辑器中打开。但仍在复制临时文件。对不起,我应该在帖子中提到这一点。