SRo*_*mes 5 amazon-ec2 apache-spark
我正在使用spark-ec2运行一些Spark代码.当我将master设置为"local"时,它运行正常.但是,当我将master设置为$ MASTER时,工作程序会立即失败,并为类提供java.lang.NoClassDefFoundError.工作人员连接到主人,并显示在UI中,并尝试运行任务; 但是一加载第一个依赖类(在程序集jar中)就立即引发异常.
我已经使用sbt-assembly来创建一个带有类的jar,使用jar tvf确认类是否存在,并设置SparkConf来分发类.Spark Web UI确实显示了要添加到类路径的程序集jar: http://172.xxx47441/jars/myjar-assembly-1.0.jar
看来,尽管myjar-assembly包含了类,并且正在被添加到集群中,但它并没有到达工作者.我该如何解决?(我是否需要手动复制jar文件?如果是这样,哪个dir?我认为SparkConf添加jar的意思是自动执行此操作)
我的调试尝试表明:
所以,似乎我需要告诉Spark将程序集jar的路径添加到worker的类路径中.我怎么做?或者还有另一个罪魁祸首?(我花了几个小时试图调试这个,但无济于事!)
Ksh*_*tha -1
您需要在提交应用程序时向 Spark 集群注册一个 jar,以便您可以按如下方式编辑代码。
jars(0) = "/usr/local/spark/lib/spark-assembly-1.3.0-hadoop2.4.0.jar"
val conf: SparkConf = new SparkConf()
.setAppName("Busigence App")
.setMaster(sparkMasterUrl)
.setSparkHome(sparkHome)
.setJars(jars);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1117 次 |
| 最近记录: |