我在程序中使用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。
我尝试删除本地临时文件,并确保文本文件未打开。寻找一种避免复制临时文件的方法。
提前致谢。
答案 0 :(得分:1)
文件/input/1.txt~ /input/2.txt~
是您在计算机中使用的文件编辑器创建的临时文件。您可以使用Ctrl + H查看本地目录中所有隐藏的临时文件并删除它们。