d2.2xlarge上空间不足

d2.2xlarge上空间不足

问题描述:

我通过EMR启动了一个d2.2xlarge实例。这些实例应该有12TB,但是在下载几GB之后,我得到了“设备上没有剩余空间”的错误。我认为所有的存储空间都在根驱动器上,而不是EBS,所以我不确定发生了什么。d2.2xlarge上空间不足

这是我看到:

Filesystem  Size Used Avail Use% Mounted on 
devtmpfs   30G 92K 30G 1% /dev 
tmpfs   30G  0 30G 0% /dev/shm 
/dev/xvda1  9.8G 9.7G  0 100%/
/dev/xvdb1  5.0G 44M 5.0G 1% /emr 
/dev/xvdb2  1.9T 231M 1.9T 1% /mnt 
/dev/xvdc  1.9T 34M 1.9T 1% /mnt1 
/dev/xvdd  1.9T 34M 1.9T 1% /mnt2 
/dev/xvde  1.9T 34M 1.9T 1% /mnt3 
/dev/xvdf  1.9T 34M 1.9T 1% /mnt4 
/dev/xvdg  1.9T 34M 1.9T 1% /mnt5 
+0

https://forums.aws.amazon.com/thread.jspa?threadID=232806 - 有关于此的讨论。看起来像一个超时。 – Kannaiyan

+0

运行'df -h'来看看发生了什么 – alfasin

目前尚不清楚,当你遇到你的空间问题了,但它听起来就像发生在你手动下载的东西,使用Hadoop时没有。所以我会用它作为下面解释的基础。

每个Hadoop节点将始终有一个10GB root volume。此外,根据实例类型和配置的不同,它可能会有临时卷和/或EBS卷来增加存储空间。这些卷不会增加根分区的大小,但会挂载到不同的路径!

正如你所说,你d2.2xlarge带有短暂存储的6X 2TB,其安装到名为/mnt*,如可以在df - 输出可以看到几个安装点。因此,如果您需要手动下载并存储大量数据,请将其存储在其中一个挂载点下。

请注意,所有存储卷,无论是在AWS EMR临时存储或EBS卷,are considered ephemeral

亚马逊EBS的工作方式不同亚马逊EMR内比它与普通的Amazon EC2实例一样。连接到EMR群集的Amazon EBS卷是短暂的:在群集和实例终止时(例如,缩小实例组时)删除卷,所以重要的是不要期望数据持久存在。

因此,无论您打算如何使用EMR中的可用存储,如果您手动将数据保存到其中一个卷,它迟早会丢失!

由于EMR是托管Hadoop解决方案,它当然需要提供一种可靠地存储数据的方法。 Hadoop的HDFS作为一个分布式文件系统,利用可用卷并通过保存数据的多个副本来确保数据可用。在EMR上,HDFS使用可用的临时存储卷以及附加到实例的EBS卷。即使使用HDFS,一旦拆除EMR集群,您将丢失数据!数据的

实持久存储可以通过将其存储在S3中,其是supported by upstream Hadoop,或与由AWS专有解决方案仅包含在EMR称为EMRFS其中通过上游解决方案提供了一些优势来实现。

因此,通常的过程是仅手动将数据存储在Hadoop节点的卷上,以便为需要设置Hadoop环境的工具,在输入数据时使用S3或某些流式解决方案,在处理数据期间使用HDFS Hadoop作为中间位置,S3保持最终结果。

+0

谢谢,在我的使用案例中,我只需要在转移到S3之前临时存储这些实例的数据。我意识到我只需'cd'到'/ mnt *',然后从那里运行下载脚本。 –

Now available: D2 instances, the latest generation of Amazon EC2 Dense-storage instances

存储的实例存储(它们被安装并消失,当你停止实例)。整个12TB不在根上,它被安装为6个磁盘。

enter image description here

+0

虽然我并没有停止这个实例。下载的数据仍然存在。 –

+0

我刚才提到存储是实例存储,在停止后不会保留。整个12TB不在根上,它被安装为6个磁盘。 – helloV

+0

啊,所以我需要挂载每个磁盘?事实上,它似乎已经被安装。那么如何让数据在那里写呢? –