当前位置: 首页 > 知识库问答 >
问题:

使用yarn-cluster模式初始化SparkContext时出错

夏侯涵映
2023-03-14

我正在运行一个简单的代码来在hdfs上创建一个文件,并向其写入内容,然后关闭该文件。我可以在本地模式和纱线客户端模式下运行此代码。但是,当我用yarn-cluster模式运行相同的代码时,我在初始化sparkcontext时会遇到错误。

我使用的Scala代码如下所示:

object Main {
def main(args: Array[String]): Unit = {
val conf= new SparkConf()

var sparkContext =new SparkContext("yarn-cluster","testHdfsWrite",conf)
val uri = URI.create (hdfslocation); // hdfs location of my home directory
val confi = new Configuration();
val file = FileSystem.get(uri, confi);
val os = file.create(new Path(uri))
os.write("Hello World".getBytes("UTF-8"))
os.close()
 }
}
 ERROR SparkContext: Error initializing SparkContext.
org.apache.spark.SparkException: Detected yarn-cluster mode, but isn't running on a cluster. Deployment to YARN is not supported directly by SparkContext. Please use spark-submit.
        at org.apache.spark.SparkContext.<init>(SparkContext.scala:411)
        at org.apache.spark.SparkContext.<init>(SparkContext.scala:147)
        at Main$.main(Main.scala:17)
        at Main.main(Main.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
INFO SparkContext: Successfully stopped SparkContext

共有1个答案

严烨
2023-03-14

我也遇到过这个问题,并尝试使用以下方法来解决它:尝试一下,在程序的main()方法中创建“spark context”(对于sql context相同),如下所示:

def main(args:array[String]):Unit={

  val conf = new SparkConf().setAppName("Simple Application")

  val sc = new SparkContext(conf)

  val sqlContext = new SQLContext(sc)

}并在下面导入:

spark-submit--master yarn-cluster--packages --class com.test.exampletest --jars

 类似资料:
  • 我似乎找不到是什么引起的:/

  • 我一直在使用Spark2.0.1,但试图通过将tar文件下载到我的本地并更改路径来升级到更新的版本,即2.1.1。 然而,现在当我尝试运行任何程序时,它在初始化SparkContext时都失败了。即。

  • 我试图在Windows 8.1上运行Apache Spark调用Spark shell命令时,得到以下堆栈: 系统变量配置如下: HADOOP\u主页: c: \ hadoop JAVA_HOME: C: \Java\jdk1.8.0\u 162 SCALA_HOME: C: \斯卡拉 SPARK\u主页: C: \ spark\spark-2.3.0-bin-hadoop2.7 路径: %JAV

  • 由于此错误,无法安装gulp和其他插件,但express,Socket.io已成功安装

  • 我有我的文件下面: 我也有例子。: 出于某种原因,当我做在我的根目录(不是)我得到错误: 有人能给我解释一下这个错误中的问题吗?这是因为我的依赖项没有正确安装,还是因为其他原因?

  • 我按照步骤创建了HelloWorld示例,但它没有运行。它给出了以下错误: 初始化引导层java.lang.module.FindException时出错:读取模块:F:\Develop\Eclipse\HelloWorld\bin时出错,原因是:java.lang.module.InvalidModuleDescriptoRexception:HelloWorld.class在顶级目录中找到(模