2015-11-04 119 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

感謝夥計我的錯誤消失了... –