Получение "не осталось места на устройстве" для ок. 10 ГБ данных по ЭМИ М1.крупные экземпляры
Я получаю сообщение об ошибке "на устройстве не осталось места", когда я выполняю свои задания Amazon EMR с использованием m1.большой, как тип экземпляра для экземпляров hadoop, создаваемых jobflow. Задание генерирует ок. 10 ГБ данных при максимальной и начиная с емкости М1.большой экземпляр должен быть 420GB*2 (в соответствии с: EC2 типами экземпляров). Я не понимаю, как всего 10 ГБ данных могут привести к" полному дисковому пространству " типа сообщения. Я осознаю возможность того, что такого рода ошибка также может быть сгенерировано, если мы полностью исчерпали общее количество индексов, разрешенных в файловой системе, но это похоже на большое число, составляющее миллионы, и я уверен, что моя работа не производит так много файлов. Я видел это, когда пытался создать экземпляр EC2 независимо от m1.большой тип по умолчанию присваивает ему корневой том размером 8 ГБ. Может быть, это также является причиной выделения экземпляров в EMR? Затем, когда диски размером 420 ГБ будут распределены на пример?
Также, здесь вывод "df-hi "и"mount"
$ 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 ответ:
С помощью @slayedbylucifer я смог определить, что проблема заключалась в том, что полное дисковое пространство по умолчанию доступно для HDFS в кластере. Таким образом, по умолчанию имеется 10 ГБ пространства, установленного на / доступного для локального использования машиной. Существует опция
--mfs-percentage, которая может использоваться (при использовании MapR-дистрибутива Hadoop) для указания разделения дискового пространства между локальной файловой системой и HDFS. Он монтирует локальную квоту файловой системы в/var/tmp. Убедитесь, что опцияmapred.local.dirустанавливается в каталог внутри/var/tmp, потому что именно туда попадают все журналы попыток tasktracker, которые могут быть огромными по размеру для больших заданий. Ведение журнала в моем случае вызывало ошибку дискового пространства. Я установил значение--mfs-percentageравным 60 и после этого смог успешно выполнить задание.