我仍然是Hadoop的新手学习者,这次我正在处理一个106GB的文件。 我用-copyFromLocal把这个大文件复制到我的Hadoop DFS,但是由于文件很大,我不得不等待很长时间才知道当前的复制状态。
有没有什么办法用这个命令显示当前的文件复制状态?
提前谢谢你们的帮助!
CopyFromLocal不具备显示文件复制进度的function。 或者,您可以打开另一个shell并运行$ watch hadoop fs -ls <filenameyouarecopying> 。 这将每2.0秒显示一次文件和大小。
它看起来没有任何复制命令(copyFromLocal,copyToLocal,get,put)的详细选项。 你最好的办法是在HDFS上查看目标文件的大小,以便衡量它的进度。
您可以使用“nohup&”来执行复制作为后台进程。 即使从服务器注销,nohup也会使进程执行。 当你需要的时候,你可以使用“hadoop fs -ls”来检查进程。
也可以使用pv命令跟踪读取本地文件的进度,并将文件内容传送到hdfs dfs stdin:
pv mylargefile.txt | hdfs dfs -put - /path/to/file/on/hdfs/mylargefile.txt