我通过EMR启动了d2.2xlarge
实例。这些实例应该有12TB,但我得到了一个"设备上没有空间"下载几GB后出错。我以为所有这些存储空间都在根驱动器上,而不是EBS,所以我不确定是怎么回事。
这就是我所看到的:
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 :(得分:1)
来自Now available: D2 instances, the latest generation of Amazon EC2 Dense-storage instances
存储是实例存储(它们在您停止实例时已挂载并消失)。整个12 TB不在root上,它安装为6个磁盘。
答案 1 :(得分:1)
当你遇到空间问题时,目前尚不清楚,但是当你手动下载某些内容时,它听起来就像是在使用Hadoop时发生的。所以我将把它用作下面解释的基础。
每个Hadoop节点始终都有10GB root volume。此外,根据实例类型和配置,它可能具有临时卷和/或EBS卷以增加存储空间。这些卷不会增加根分区的大小,但会挂载到不同的路径!
正如您所提到的,您的d2.2xlarge
附带了6x 2TB的临时存储空间,这些存储空间已安装到名为/mnt*
的多个挂载点,如df
- 输出中所示。因此,如果您需要手动下载和存储大数据,请将其存储在其中一个挂载点下。
请注意AWS EMR中的所有存储卷,无论是临时存储还是EBS卷,are considered ephemeral:
Amazon EBS在Amazon EMR中的工作方式与常规Amazon EC2实例的工作方式不同。连接到EMR集群的Amazon EBS卷是短暂的:在集群和实例终止时删除卷(例如,缩小实例组时),因此不要期望数据持续存在是很重要的。
因此,无论您打算如何处理EMR中的可用存储,如果您手动将数据保存到其中一个卷,它迟早会丢失!
由于EMR是一个受管理的Hadoop解决方案,它当然需要提供一种可靠地存储数据的方法。 Hadoop的HDFS作为分布式文件系统,利用可用的卷并通过保存数据的多个副本来确保数据可用。在EMR上HDFS使用可用的临时存储卷以及附加到实例的EBS卷。即使使用HDFS,一旦拆除EMR集群,您也会丢失数据!
数据的实际持久存储可以通过将其存储在S3 supported by upstream Hadoop中,或者通过仅包含在名为EMRFS的EMR中的AWS的专有解决方案来实现,这提供了优于上游解决方案的一些优势。
因此,通常的过程是仅在Hadoop节点的卷上手动存储数据,以获取设置Hadoop环境所需的工具,在处理数据时使用S3或某些流式解决方案来处理输入数据,HDFS Hadoop作为中间位置,S3用于持久保存完成的结果。