Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 获得;设备上没有剩余空间”;用于EMR m1.1大型实例上约10 GB的数据_Hadoop_Amazon Web Services_Amazon Ec2_Elastic Map Reduce_Diskspace - Fatal编程技术网

Hadoop 获得;设备上没有剩余空间”;用于EMR m1.1大型实例上约10 GB的数据

Hadoop 获得;设备上没有剩余空间”;用于EMR m1.1大型实例上约10 GB的数据,hadoop,amazon-web-services,amazon-ec2,elastic-map-reduce,diskspace,Hadoop,Amazon Web Services,Amazon Ec2,Elastic Map Reduce,Diskspace,当我使用m1.large作为要由jobflow创建的hadoop实例的实例类型运行Amazon EMR作业时,我收到一个错误“设备上没有剩余空间”。该作业最多生成约10 GB的数据,因为m1.1大型实例的容量应为420GB*2(根据:)。我感到困惑的是,仅仅10GB的数据就可以产生“磁盘空间已满”的信息。我知道,如果我们完全耗尽了文件系统上允许的inode总数,也可能会产生这种错误,但这是一个相当大的数字,总计达数百万个,我非常确定我的工作不会产生那么多文件。我已经看到,当我尝试独立于m1.la

当我使用m1.large作为要由jobflow创建的hadoop实例的实例类型运行Amazon EMR作业时,我收到一个错误“设备上没有剩余空间”。该作业最多生成约10 GB的数据,因为m1.1大型实例的容量应为420GB*2(根据:)。我感到困惑的是,仅仅10GB的数据就可以产生“磁盘空间已满”的信息。我知道,如果我们完全耗尽了文件系统上允许的inode总数,也可能会产生这种错误,但这是一个相当大的数字,总计达数百万个,我非常确定我的工作不会产生那么多文件。我已经看到,当我尝试独立于m1.large类型创建EC2实例时,默认情况下,它会为其分配8GB的根卷。这是否也是在EMR中提供实例的原因?那么,大小为420GB的磁盘何时分配给实例

另外,这里是“df-hi”和“mount”的输出

$df-你好 文件系统inode IUsed IFree IUse%已装入 /dev/xvda1 640K 100K 541K 16%/ tmpfs 932K 3 932K 1%/lib/init/rw udev 930K 454 929K 1%/开发 tmpfs 932K 3 932K 1%/dev/shm ip-10-182-182-151.ec2.内部:/mapr 100G 50G 50G 50%/mapr $mount /dev/xvda1打开/键入ext3(rw,noatime) tmpfs on/lib/init/rw型tmpfs(rw,nosuid,模式=0755) proc on/proc类型proc(rw、noexec、nosuid、nodev) sysfs on/sys类型sysfs(rw、noexec、nosuid、nodev) udev on/dev型tmpfs(rw,模式=0755) tmpfs on/dev/shm型tmpfs(rw、nosuid、nodev) /dev/pts类型devpts上的devpts(rw、noexec、nosuid、gid=5、mode=620) /var/run-on/run-type无(rw,bind) /变量/锁定打开/运行/锁定类型无(rw,绑定) /dev/shm on/run/shm类型none(rw,bind) /var/lib/nfs/rpc_-pipefs类型rpc_-pipefs(rw)上的rpc_-pipefs ip-10-182-182-151.ec2.内部:/mapr on/mapr类型nfs(rw,addr=10.182.182.151) $lsblk 名称主要:最小RM尺寸RO类型安装点 xvda1 202:1 0 10G 0磁盘/ xvdb 202:16 0 420G 0磁盘 xvdc 202:32 0 420G 0磁盘
在@slayedbylucifer的帮助下,我发现了一个问题:默认情况下,集群上的HDFS可以使用完整的磁盘空间。因此,机器上安装的默认10GB空间可供本地使用。有一个名为
--mfs percentage
的选项(在使用Hadoop的MapR发行版时)可以用来指定本地文件系统和HDFS之间的磁盘空间分割。它将本地文件系统配额装载到
/var/tmp
。确保将选项
mapred.local.dir
设置为
/var/tmp
内的目录,因为这是tasktracker尝试的所有日志所在的位置,对于大型作业,这些日志的大小可能很大。我的案例中的日志记录导致了磁盘空间错误。我将
--mfs percentage
的值设置为60,并在此后成功运行了作业。

您能否提供
df-hi
mount
@slayedbylucifer-的输出,并按照您的要求添加了问题中的输出。
fdisk-l
中是否显示了两个420G驱动器?如果是,则可能它们已连接到您的实例,但尚未格式化并装载到任何位置。另外,
df-h
是否显示了100%使用的内容?@slayedbylucifer-我认为您是对的,默认情况下没有安装它们。我已经把结果贴在问题本身上了。因此“/”下的默认分区是10GB,而420G中的其他两个分区都没有装入。现在,
df-h
说了什么? $ 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