无法在AWS Rstudio上分配可用内存

时间:2018-06-09 14:18:56

标签: r amazon-web-services amazon-ec2 ami

我正在使用AWS R studio从S3读取35 GB的csv文件并执行分析。我选择一台带有64 GB内存的m4.4xlarge的机器,但在执行任何分析之前,我在读取数据时仍然收到以下消息:"错误:无法分配大小为33.0 Gb"的向量。我使用的代码是:

library("aws.s3")
Sys.setenv("AWS_ACCESS_KEY_ID" = "xxxxxxx",
       "AWS_SECRET_ACCESS_KEY" = "yyyyyyy")
obj <-get_object("s3://xxx/yyy.csv")  

当我使用以下代码时,

aws.s3::s3read_using(read.csv, object=“"s3://xxx/yyyy.csv”)

错误消息变为:

我收到的错误信息如下:

Error in curl::curl_fetch_disk(url, x$path, handle = handle) : 
Failed writing body (4400 != 16360)

我不熟悉Linux,而且我使用了Louis Aslett的AMI(http://www.louisaslett.com/RStudio_AMI/)。有什么设置我应该改变吗?谢谢!

我怀疑这个问题与以下两个问题有关,但没有明确的答案。

Reading large JSON files from S3 in RStudio EC2 instance (Louis Aslett's AMI)

Trouble Uploading Large Files to RStudio using Louis Aslett's AMI on EC2

1 个答案:

答案 0 :(得分:0)

在相同的AMI中,我克服了R中的一个非常相似的问题。我的问题是,尽管AWS的默认主目录大小小于8-10GB,无论您的实例大小如何。由于试图上传到家里,所以没有足够的空间。从个人经验来看,使用相同的AMI读取数据,听起来像是同样的问题。

如果您上传到实例上的其他驱动器,则可以解决此问题。由于Louis Aslett Rstudio AMI基于8-10GB的空间,因此您必须在该目录(主目录)之外设置工作目录。从Rstudio服务器界面上看不出来直观。

我相信您问题的解决方案与读取数据的方法无关。问题是主目录小于10GB,您正在尝试读入(如果您是Windows用户,我认为这很有可能,因为您不希望60GB的计算机在默认目录中只有10GB)。 。我建议您看一下其他目录(例如,在Rstudio中的RHS的Rstudio目录选择框中,或者在Linux命令行中的df命令中,将目录抬高一些。然后将setwd()放在另一个目录(例如xda或具有足够空间的任何目录)中,然后尝试再次读入。

我可能没有像主持人那样写这个答案,但是我已经克服了一个类似的问题,并且这个问题已经一年没有答案了,所以我希望它能有所帮助(哦,我没有足够的“点”来写评论,所以它必须是答案)