2015-11-04 66 views
1

我想通过Java代码spark-submit。我指的是下面的例子。通过java代码spark-submit

https://github.com/mahmoudparsian/data-algorithms-book/blob/master/misc/how-to-submit-spark-job-to-yarn-from-java-code.md

但我正在逐渐

The constructor ClientArguments(String[], SparkConf) is undefined 

这是我的代码。

import org.apache.spark.deploy.yarn.Client; 
import org.apache.spark.deploy.yarn.ClientArguments; 
import org.apache.hadoop.conf.Configuration; 
import org.apache.spark.SparkConf; 

public class SparkSubmitJava { 
    public static void main(String[] arguments) throws Exception { 
     String[] args = new String[] {"--name", "myname", "--jar", "/home/cloudera/Desktop/ScalaTest.jar", "--class", "ScalaTest.ScalaTest.ScalaTest", "--arg","3", "--arg", "yarn-cluster"}; 

     Configuration config = new Configuration(); 
     System.setProperty("SPARK_YARN_MODE", "true"); 
     SparkConf sparkConf = new SparkConf(); 
     ClientArguments cArgs = new ClientArguments(args, sparkConf); // getting constructor error 
     Client client = new Client(cArgs, config, sparkConf); // getting constructor error 
     client.run(); 
    } 
} 

我的pom.xml依赖部分:

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-core_2.10</artifactId> 
    <version>1.3.0</version> 
</dependency> 

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-yarn_2.9.3</artifactId> 
    <version>0.8.1-incubating</version> 
</dependency> 

蚂蚁帮助将不胜感激。

+0

你可以分享你的maven pom.xml吗?我没有错误。 – eliasah

+0

当然我会分享你现在..你使用gradle? –

+1

不使用我正在使用maven。 (你的问题被标记为maven) – eliasah

回答

2

考虑到你已经从你的pom.xml中共享了什么,这里是你的问题:你正在使用一个非常旧的版本的火花库0.8.1-incubating,你需要用对应的版本替换spark-core。由于您使用的Spark 1.3,这是依赖你会需要以下的,而不是你所使用的一个:

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-yarn_2.10</artifactId> 
    <version>1.3.0</version> 
</dependency> 

其次,你正在使用的库版本不兼容的Scala明智的。请注意,_2.10_2.9.3非常重要。它们允许你使用每个依赖项的特定scala编译版本,所以你应该小心。

+1

感谢伙计我的错误消失了... –