2012-05-31 30 views
1

我有一个任务在SAS服务器上运行K-Means集群算法,但运行内存不足。数据集是500G,我知道我可以对它进行抽样以适应内存,但是如果我想在整个数据上运行模型,Oracle R Enterprise(ORE)是否可以解决我的问题?关于铁矿石和ORCHOracle R Enterprise(ORE)KMeans包

其他相关问题:

  1. 是否甲骨文研究套餐包括任何聚类算法?是否有可用的Oracle R软件包列表?
  2. 如果我在Oracle R Enterprise中运行kmeans算法(R CRAN包),是否也会遇到内存问题?
  3. 在BDA中是否有任何可用于分布式Hadoop集群的R集群软件包?

感谢

+0

无需支付Oracle。我会以每个核心10,000美元的低价格做到这一点! –

+0

作为一个侧面说明,请托马斯Jungblut的帖子在K-意味着纯Hadoop实现 - http://codingwiththomas.blogspot.com/2011/05/k-means-clustering-with-mapreduce.html –

+0

等待克里斯,这不是用于500G的生产使用,这会使他的情况更糟。请采取Mahout实施。 –

回答

2

最好的办法是使用Mahout的Hadoop的。 Mahout支持K-Means集群,如here所述,并且在Hadoop上设置Mahout非常简单。

如果你可以用几台机器构建自己的Hadoop集群,运行Mahout需要30分钟左右。当我试了几天后,this blog帮了我很大的忙。

你可以做同样的事情,并节省大量的金钱和时间。

我还没有谈论过使用Oracle R,这里只是因为,首先,我对Oracle R并不了解很多,但是我知道Mahout在Hadoop上会帮助你好得多,因为有很多的资源如何在短时间内完成。如果你真的在寻找Oracle R,那么这不是答案,否则它确定。

+0

感谢Avkash的建议,我会在AWS等待Oracle R答案时尝试Mahout KMeans。 – user1319866

0

我刚刚在几天前开始使用ORE,所以我还不是专家,但它很容易分辨出它具有K-means功能。请参阅ORE 1.3文档here并搜索ore.odmKMeans函数。我已经检查过,它在那里。所以你的第一个问题的答案是肯定的 - 在ORE中有一个K-means函数。

关于你关于记忆问题的第二个问题。要使用ORE你需要有一个Oracle数据库 - 甚至更好的数据库云服务器的Oracle机(这些通常有大约1Tb的存储)和许多的矿石R的功能和实现为SQL数据库级别上运行,所以它运行的数据库和应用上比将数据加载到R的内存中更少的内存,甚至那些不使用SQL下推的函数,而是使用更常规的R方法使用数据库机器的内存,该机器通常比任何R机器具有更多的内存。老实说,我还没有看过ORE K-means的实现,所以我不知道这个函数是什么情况。