我正在使用RStudio使用SparkR连接到我的HDFS文件。当我让Spark分析在一夜之间运行时,第二天我收到“ R会话中止”错误。根据Spark上Spark(https://spark.apache.org/docs/latest/configuration.html)的文档,spark.r.backendConnectionTimeout的默认值设置为6000s。我想将此值更改为较大,以使分析完成后我的连接不会超时。
我尝试了以下方法:
sparkR.session(master = "local[*]", sparkConfig = list(spark.r.backendConnectionTimeout = 10))
sparkR.session(master = "local[*]", spark.r.backendConnectionTimeout = 10)
两个命令的输出都相同:
Spark package found in SPARK_HOME: C:\Spark\spark-2.3.2-bin-hadoop2.7
Launching java with spark-submit command C:\Spark\spark-2.3.2-bin-hadoop2.7/bin/spark-submit2.cmd sparkr-shell C:\Users\XYZ\AppData\Local\Temp\3\RtmpiEaE5q\backend_port696c18316c61
Java ref type org.apache.spark.sql.SparkSession id 1
似乎参数未正确传递。另外,我不确定在哪里传递该参数。 任何帮助将不胜感激。
也有类似的帖子,但是涉及齐柏林飞艇(how to change spark.r.backendConnectionTimeout value?)。
谢谢。
答案 0 :(得分:0)
我找到了解决方案:它是修改spark-defaults.conf文件并添加以下行:
spark.r.backendConnectionTimeout = 6000000
(或您想要的任何时间限制)
重要说明-重新启动hadoop和yarn服务,并尝试使用SparkR正常连接到Spark:
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
sparkR.session(master = "local")
您可以在http://localhost:4040/environment/上查看设置是否已完成
我希望这对其他人有用。