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

时间:2014-03-30 12:52:02

标签: hadoop mapreduce hdfs word-count file-copying

我在程序中使用fs.copyFromLocalFile(本地路径,Hdfs dest路径)。 我每次在从本地计算机复制文件之前删除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~

当我将Input作为单个文件提供时Home / user / desktop / input / 1.txt创建没有问题,只复制单个文件。但是提到目录会产生问题 但是通过命令行手动将每个文件放在HDFS Dest中都没有问题。

我不确定如果我错过了一个简单的文件系统逻辑。但如果有人能说明我哪里出错了会很棒。

我正在使用hadoop 2.2.0。

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

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