在 Hadoop 中,如何显示 -copyFromLocal 的当前进程

在 Hadoop 中,如何显示 -copyFromLocal 的当前进程

我还是 Hadoop 的新手,这次尝试处理一个 106GB 的文件。我曾经将-copyFromLocal这个大文件复制到我的 Hadoop DFS,但由于文件很大,我不得不等待很长时间,而无法知道当前的复制状态。

有没有办法用这个命令显示当前文件复制状态?

提前感谢你们的帮助!

答案1

CopyFromLocal无法显示文件复制进度。或者,您可以打开另一个 shell 并运行$ watch hadoop fs -ls <filenameyouarecopying>。这将每 2.0 秒显示一次文件及其大小。

答案2

还可以使用pv命令跟踪读取本地文件的进度并将文件内容传送到hdfs dfs标准输入:

pv mylargefile.txt | hdfs dfs -put - /path/to/file/on/hdfs/mylargefile.txt

答案3

看起来任何复制命令(copyFromLocal、copyToLocal、get、put)都没有详细选项。最好的办法可能是查看 HDFS 上目标文件的大小,以衡量其进度。

答案4

您可以使用“nohup &”将复制作为后台进程执行。nohup 会使该进程在您退出服务器后继续执行。您可以随时使用“hadoop fs -ls”检查该进程。

相关内容