segue包的Emrlapply不适用于简单的任务

时间:2012-05-27 11:34:50

标签: r emr

我尝试重现使用https://jeffreybreen.wordpress.com/2011/01/10/segue-r-to-amazon-elastic-mapreduce-hadoop/

中的segue的简单示例

群集创建成功

> cl <- createCluster(numInstances=2)
STARTING - 2012-05-27 14:02:08
STARTING - 2012-05-27 14:02:39
STARTING - 2012-05-27 14:03:10
STARTING - 2012-05-27 14:03:42
STARTING - 2012-05-27 14:04:13
STARTING - 2012-05-27 14:04:44
STARTING - 2012-05-27 14:05:15
STARTING - 2012-05-27 14:05:46
STARTING - 2012-05-27 14:06:17
BOOTSTRAPPING - 2012-05-27 14:06:48
BOOTSTRAPPING - 2012-05-27 14:07:19
BOOTSTRAPPING - 2012-05-27 14:07:50
BOOTSTRAPPING - 2012-05-27 14:08:21
BOOTSTRAPPING - 2012-05-27 14:08:52
BOOTSTRAPPING - 2012-05-27 14:09:23
BOOTSTRAPPING - 2012-05-27 14:09:55
WAITING - 2012-05-27 14:10:26
Your Amazon EMR Hadoop Cluster is ready for action. 
Remember to terminate your cluster with stopCluster().
Amazon is billing you!

本地模拟没问题,但在群集上运行它每次都会返回错误。

> myList <- NULL
> set.seed(1)
> for (i in 1:10){
  +   a <- c(rnorm(999), NA)
  +   myList[[i]] <- a
  + }
> outputLocal  <- lapply(myList, mean, na.rm=T)
> outputEmr   <- emrlapply(cl, myList, mean,  na.rm=T)
RUNNING - 2012-05-27 14:11:58
RUNNING - 2012-05-27 14:12:29
RUNNING - 2012-05-27 14:13:00
WAITING - 2012-05-27 14:13:31
Error in lines[[i]] : subgroup is out of range
> stopCluster(cl)

我喜欢这个包的想法,我希望它对我的工作有用,但我无法弄清楚如何解决这个基本问题。

版本segue 0.02

操作系统:Ubuntu 11.10

UPDATE :我尝试运行另一个Pi估算的示例测试用例,emrlapply返回了相同的错误消息。

UPDATE2 : 我更新到版本0.03,现在我无法连接到群集。成功启动后,实例尝试关闭而没有任何效果。我通过AWS consol终止了实例。所以旧问题已经解决,但新问题出现了。

> cl <- createCluster(numInstances=2)
STARTING - 2012-06-01 22:36:10
STARTING - 2012-06-01 22:36:41
STARTING - 2012-06-01 22:37:12
STARTING - 2012-06-01 22:37:43
STARTING - 2012-06-01 22:38:14
STARTING - 2012-06-01 22:38:46
SHUTTING_DOWN - 2012-06-01 22:39:17
SHUTTING_DOWN - 2012-06-01 22:39:48
...
SHUTTING_DOWN - 2012-06-01 22:48:05
SHUTTING_DOWN - 2012-06-01 22:48:36
FAILED - 2012-06-01 22:49:07
>

1 个答案:

答案 0 :(得分:1)

似乎亚马逊将EMR服务更改为默认值 如果没有调用特定版本,则为EMR AMI的1.0版本。 从1月1日开始,行为一直默认为最新版本。 当我将更改默认为最新版本时,我就有了 Hadoop当前化身的问题是希望输出 在S3的子桶中。

我必须将Java AWS API代码升级到最新版本才能进行这些更改。

新版本的tar球在这里: http://code.google.com/p/segue/downloads/list 或者你可以克隆源代码并自己构建它,如果你是这样的话 有点像。

我已经将Segue索引到这个变化的0.03。

编辑:我刚发现m1.small是一个问题(32位)所以我已经更改了默认和更改的行为,不允许用户指定m1.small。新版本是0.04。