6

ジョブフローによって作成されるhadoopインスタンスのインスタンスタイプとしてm1.largeを使用してAmazon EMRジョブを実行しているときに「デバイスにスペースが残っていません」というエラーが表示されます。 。ジョブは約最大10GBのデータと、大きなインスタンスの容量が420GB * 2(EC2 instance typesによる)であると想定されているためです。私は、10GBのデータがどのように「ディスクスペースいっぱい」のメッセージにつながるのか混乱しています。私は、ファイルシステム上で許されるinodeの総数を完全に使い果たしたとしても、この種のエラーが発生する可能性を認識していますが、それは数百万にも及ぶ大きな数字のようなものです。私の仕事はそうではないと確信していますその多くのファイルを生成します。私は、m1.largeタイプとは独立してEC2インスタンスを作成しようとすると、デフォルトで8GBのルートボリュームを割り当てていることがわかりました。これがEMRのインスタンスのプロビジョニングの背後にある理由でもありますか?次に、サイズが420GBのディスクをいつインスタンスに割り当てるのですか?「デバイス上にスペースが残っていません」と表示されます。 EMR m1.largeインスタンスで10 GBのデータ

また、私は問題を特定することができた、ここでは「DF -hi」のの出力であり、@slayedbyluciferの助けを借りて

 
$ df -hi 
Filesystem   Inodes IUsed IFree IUse% Mounted on 
/dev/xvda1    640K 100K 541K 16%/
tmpfs     932K  3 932K 1% /lib/init/rw 
udev     930K  454 929K 1% /dev 
tmpfs     932K  3 932K 1% /dev/shm 
ip-10-182-182-151.ec2.internal:/mapr 
         100G  50G  50G 50% /mapr 

$ mount 
/dev/xvda1 on/type ext3 (rw,noatime) 
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) 
proc on /proc type proc (rw,noexec,nosuid,nodev) 
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) 
udev on /dev type tmpfs (rw,mode=0755) 
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) 
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) 
/var/run on /run type none (rw,bind) 
/var/lock on /run/lock type none (rw,bind) 
/dev/shm on /run/shm type none (rw,bind) 
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) 
ip-10-182-182-151.ec2.internal:/mapr on /mapr type nfs (rw,addr=10.182.182.151) 
 

$ lsblk 
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 
xvda1 202:1 0 10G 0 disk/
xvdb 202:16 0 420G 0 disk 
xvdc 202:32 0 420G 0 disk 

+1

あなたは 'df -hi'と' mount'の出力を提供することができます – slayedbylucifer

+0

@slayedbylucifer - あなたが望むように質問に出力を追加しました。 –

+0

420Gの2つのドライブはそれぞれ 'fdisk -l'に表示されますか?もしそうなら、あなたのインスタンスには接続されていますが、まだフォーマットされていない場所にマウントされているはずです。また 'df -h'は100%使用されているものを表示しますか? – slayedbylucifer

答えて

2

を「マウント」は、完全なディスクスペースということでしたデフォルトでクラスタ上のHDFSで使用できるようになります。したがって、マシンにローカルで使用するために/にマウントされたデフォルトの10GBのスペースがあります。 --mfs-percentageというオプションがあり(HadoopのMapRディストリビューションを使用している間)、ローカルファイルシステムとHDFSの間のディスクスペースの分割を指定することができます。ローカルファイルシステムのクォータを/var/tmpにマウントします。 mapred.local.dirオプションが/var/tmpのディレクトリに設定されていることを確認します。これは、タスクトラッカーのすべてのログが入り、大きなジョブのサイズが大きくなる可能性があるためです。私の場合のログインでディスクスペースエラーが発生していました。私は--mfs-percentageの値を60に設定し、それ以降は正常にジョブを実行することができました。

関連する問題