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

sg2wtvxw  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(356)

我在程序中使用fs.copyfromlocalfile(local path,hdfs dest path)。每次从本地计算机复制文件之前,我都会删除hdfs上的目标路径。但从本地路径复制文件并在其上实现map reduce后,每个文件将生成两个副本,因此字数将加倍。
为了清楚起见,我有“home/user/desktop/input/”作为我的本地路径,hdfs dest path作为“/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中不会产生问题。
我不确定是否缺少文件系统的简单逻辑。但如果有人能告诉我哪里出了问题那就太好了。
我正在使用hadoop2.2.0。
我已尝试删除本地临时文件,并确保文本文件没有打开。想办法避免复制临时文件。
提前谢谢。

ee7vknir

ee7vknir1#

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

相关问题