Nee*_*eel 6 hadoop-yarn apache-spark
我已经可以local从Eclipse IDE中提交spark作业(用Scala编写).但是,我想修改我的Spark上下文(在我的应用程序中),这样当我'运行'应用程序(在Eclipse中)时,作业将被发送到我的远程集群,使用Yarn作为资源管理器.
使用spark-submit,我可以成功将作业提交到群集:
spark-submit --class <main class> --master yarn-cluster <jar>
我想在IDE中实现相同的结果.我的sbt配置(应用程序根目录)看起来像:
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.1"
libraryDependencies += "org.apache.spark" %% "spark-yarn" % "1.5.1" % "provided"
在我的应用程序内:
val conf = new SparkConf().setAppName("xxx").setMaster("yarn-cluster")
但是,我收到以下错误:
Detected yarn-cluster mode, but isn't running on a cluster. Deployment to YARN is not supported directly by SparkContext. Please use spark-submit.
1)根据我进行的研究,yarn-cluster从 Eclipse 远程提交时,您不能在代码中使用 master ,spark-client而是使用。
new SparkConf().setAppName("test-app").setMaster("yarn-client");
Run Code Online (Sandbox Code Playgroud)
检查此Cloudera资源,他们正在详细说明可能阻止您在集群模式下运行“交互式”应用程序的约束。
2) 您可能会遇到资源未正确复制到集群的问题。解决我的问题的方法是将以下文件包含在项目的类路径中(没有任何花哨,现在我只是将它们复制到项目的 src/java 目录中):
确保特别是 core-site.xml 在类路径中,因为我读过的教程都没有提到它。你会遇到麻烦,因为没有fs.defaultFS配置,Spark 会认为目标目录与源(您的本地文件系统)而不是远程 HDFS 文件系统。
| 归档时间: |
|
| 查看次数: |
3227 次 |
| 最近记录: |