私はまだHadoopの初心者で、今回は106GBのファイルを処理しようとしていました。 -copyFromLocal
その大きなファイルを自分のHadoop DFSにコピーしますが、ファイルが大きいため、現在のコピーステータスについての手がかりなしに長い間待たなければなりません。
このコマンドで現在のファイルコピーのステータスを表示する方法はありますか?
よろしくお願いします!
CopyFromLocal
には、ファイルコピーの進行状況を表示する機能がありません。または、別のシェルを開いて$ watch hadoop fs -ls <filenameyouarecopying>
を実行することもできます。これにより、2.0秒ごとにファイルとそのサイズが表示されます。
pv
コマンドを使用してローカルファイルの読み取りの進行状況を追跡し、ファイルの内容をhdfs dfs
stdinにパイプすることもできます。
pv mylargefile.txt | hdfs dfs -put - /path/to/file/on/hdfs/mylargefile.txt
どのコピーコマンド(copyFromLocal、copyToLocal、get、put)にも詳細オプションがないようです。あなたの最善の策は、おそらく、進行状況を測定するために、HDFS上の宛先にあるファイルのサイズを調べることです。
"Nohup&"を使用して、バックグラウンドプロセスとしてコピーを実行できます。 Nohupは、サーバーからログアウトした後でもプロセスを実行します。必要に応じて、「hadoop fs -lsを使用してプロセスを確認できます。