在zeppelin中有超过2个带有R代码的笔记本失败,并且错误sparkr intrepreter没有响应

时间:2018-01-03 07:31:07

标签: apache-zeppelin sparkr

我在zeppelin(0.7.2)中运行R笔记本遇到了一个奇怪的问题。 Spark intrepreter在每个音符的Scoped模式和spark版本是1.6.2并且设置了SPARK_HOME。

请找到以下步骤重现此问题:

  1. 创建一个笔记本(注1)并在段落中运行任何r代码。我运行了以下代码。

    %r
    rdf <- data.frame(c(1,2,3,4))
    colnames(rdf) <- c("myCol")
    sdf <- createDataFrame(sqlContext, rdf)  
    withColumn(sdf, "newCol", sdf$myCol * 2.0)
    
  2. 创建另一个笔记本(注2)并在段落中运行任何r代码。我运行了与上面相同的代码。

  3. 直到现在一切正常。

    1. 创建第三个笔记本(注3)并在段落中运行任何r代码。我运行了相同的代码。此笔记本失败并显示错误
    2.   

      org.apache.zeppelin.interpreter.InterpreterException:sparkr不是   响应

      我从分析中了解到,为sparkr解释器创建的进程没有被正确杀死,这使得每个第三个模型在执行时都会抛出错误。重启sparkr解释器时将终止该进程,并且可以成功执行另外两个模型。即,对于使用sparkr解释器运行的每个第三个模型,都会抛出错误。

      帮我解决问题。

1 个答案:

答案 0 :(得分:0)

你需要设置大于2的spark.r.numRBackendThreads。默认情况下它是2,这意味着你只能有2个线程用于RBackend。由于每个音符使用范围模式,因此每个音符将为RBackend使用一个线程,因此您只能运行2个音符。