通过 java 代码提交火花
spark-submit through java code
我正在尝试通过 Java 代码进行 spark-submit。我指的是下面的例子。
但我得到
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>
蚂蚁的帮助将不胜感激。
考虑到您从 pom.xml 中分享的内容,这是您的问题:您使用的是非常旧版本的 spark-yarn 库 0.8.1-incubating
,您需要将其替换为相应的版本到火花核心。由于您使用的是 Spark 1.3,因此您需要以下依赖项而不是您正在使用的依赖项:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-yarn_2.10</artifactId>
<version>1.3.0</version>
</dependency>
其次,您使用的是 scala-wise 库的不兼容版本。请注意 _2.10
和 _2.9.3
非常重要。它们允许您使用每个依赖项的特定 scala 编译版本,因此您应该小心。
我正在尝试通过 Java 代码进行 spark-submit。我指的是下面的例子。
但我得到
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>
蚂蚁的帮助将不胜感激。
考虑到您从 pom.xml 中分享的内容,这是您的问题:您使用的是非常旧版本的 spark-yarn 库 0.8.1-incubating
,您需要将其替换为相应的版本到火花核心。由于您使用的是 Spark 1.3,因此您需要以下依赖项而不是您正在使用的依赖项:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-yarn_2.10</artifactId>
<version>1.3.0</version>
</dependency>
其次,您使用的是 scala-wise 库的不兼容版本。请注意 _2.10
和 _2.9.3
非常重要。它们允许您使用每个依赖项的特定 scala 编译版本,因此您应该小心。