使用AWS与R并行处理
我想通过为每个客户建立一个模型来解决Kaggle Dunnhumby挑战。 我想将数据拆分为10个组,并使用Amazon Web服务(AWS)并行地在十个组上使用R构建模型。 我遇到的一些相关链接是:
我不明白的是:
如果您能分享一些建议和提示,让我指出正确的方向,我将非常感激。
PS我在AWS上使用免费的使用账户,但在Amazon Linux AMI上从源代码安装R非常困难(由于缺少头文件,库和其他依赖项导致大量错误)。
您可以在AWS上手动构建所有内容。 你必须用几个实例构建你自己的亚马逊计算机集群。 在亚马逊网站上有一个很好的教程视频:http://www.youtube.com/watch?v = YfCgK1bmCjw
但是你需要花几个小时才能完成所有的事情:
segue包很不错,但你一定会遇到数据通信问题!
简单的解决方案是cloudnumbers.com(http://www.cloudnumbers.com)。 该平台可让您轻松访问云中的计算机群集。 您可以在云中使用小型计算机集群免费测试5个小时! 查看useR会议的幻灯片:http://cloudnumbers.com/hpc-news-from-the-user2011-conference
我不确定我可以回答关于使用哪种方法的问题,但我可以解释我将如何思考这个问题。 我是塞格的作者,所以请记住这种偏见:)
在开始试图弄清楚如何让AWS(或任何其他系统)运行之前,我会回答几个问题:
只是看了一下训练数据,看起来并不大(〜280 MB)。 所以这不是一个真正的“大数据”问题。 如果您的模型需要很长时间才能创建,那么这可能是一个“大CPU”问题,Segue可能会或可能不会成为帮助您解决问题的好工具。
在回答关于如何将数据导入AWS的具体问题时,Segue通过序列化您提供给emrlapply()命令的列表对象,将序列化对象上传到S3,然后使用Elastic Map Reduce服务对对象进行流式处理通过Hadoop。 但作为Segue的用户,你不需要知道这一点。 你只需要调用emrlapply()并将它传递给你的列表数据(可能是一个列表,其中每个元素是单个购物者数据的矩阵或数据框的列表)和一个函数(你写的一个函数适合你选择的模型)其余的照顾。 但请记住,当你调用emrlapply()时,Segue做的第一件事就是序列化(有时是缓慢的)并将你的数据上传到S3。 因此,根据数据大小和上网速度,这可能会很慢。 我对马库斯的断言提出了一些问题,你肯定会“发现数据通信问题”。 这显然是FUD。 我使用Segue在随机模拟上发送/接收300MB / 1GB的一些规则。 但我倾向于从AWS实例运行这些模拟,所以我正在从一个AWS机架发送和接收到另一个,这使得一切都快得多。
如果您想对AWS进行一些分析,并在云中使用R,我建议Drew Conway的AMI用于科学计算。 使用他的AMI可以让你不必安装/构建很多东西。 要将数据上传到正在运行的计算机,一旦设置了ssh证书,就可以使用scp将文件上传到您的实例。
我喜欢在我的Amazon实例上运行RStudio。 这将需要设置密码访问您的实例。 有很多资源可以帮助解决这个问题。
链接地址: http://www.djcxy.com/p/53419.html