容量が足りなくなった後、Amazon EC2でストレージを拡張しました。ただし、この操作を実行した後でも、次のエラー メッセージが表示されます。
ubuntu@ip-172-31-30-27:~/walt/bin$ LC_ALL=C
sort -k 1,1 -k 3,3n -k 2,2n -k 6,6 \-o ./final_1_mr.mr.sorted_end_first ./final_1_mr.mr
*sort: write failed: /tmp/sort8Aua2D: No space left on device*
私の保存統計:
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 12K 3.9G 1% /dev
tmpfs 799M 340K 799M 1% /run
/dev/xvda1 788G 295G 462G 39% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 0 3.9G 0% /run/shm
none 100M 0 100M 0% /run/user
overflow 1.0M 0 1.0M 0% /tmp
私は私の所有者のプロジェクトを進めていますが、このエラーメッセージが停止しました。助けてください!
ありがとう
答え1
問題は/tmp
1Mbにすぎませんが、ソートしたいファイルは4GBです。どのように機能するのか正確にはわかりませんが、(エラーに記載されているように) sort
確実に使用されており、1Mbでは十分ではありません。/tmp
別のパーティションを作成してにマウントする必要があります/tmp
。または、これを実行できない場合は、十分なスペースがあるホームフォルダに10〜20 Gb(またはそれ以上)の仮想ディスクを作成してからfallocate
マウントするdd
必要があります/tmp
。fallocate
のように見えないので、より速いですdd
。
したがって、ホームディレクトリに仮想ディスクを作成して次のようにマウントするには、次の手順を実行する必要があります/tmp
。
cd # change to your home directory
fallocate -l 10G mydrive.img # create the virtual drive file
mkfs -t ext3 mydrive.img # format the virtual drive
sudo umount /tmp # unmount the /tmp
sudo mount -t auto -o loop mydrive.img /tmp # mount the virtual drive
umount
そのパーティションには多くのスペースがあるため、ルートフォルダの既存のフォルダを使用することもできます。全員にフルアクセスを許可したら、次のことを確認してください。 /tmp
tmp
/
/
umount
/tmp
sudo umount /tmp
sudo chmod 1777 /tmp
答え2
公開したレイアウトなど、十分なスペースがあるファイルシステムに書き込み可能なディレクトリを指定するsort
には、-T dir
GNUを使用します。--temporary-directory=dir
dir
/home/$USER/mytemp