我建议您在 IDE 中编写简单的 Java 或 Scala 类。在“SimpleApp.java”中创建 SparkConf 和 SparkContext 对象。
SparkConf conf = new SparkConf().setAppName(appName).setMaster("local[2]");
JavaSparkContext sc = new JavaSparkContext(conf);
一旦您运行maven clean package 或maven package,它将在您项目的目标文件夹中创建jar 文件。如果没有,则使用以下命令创建 JAR 文件。您可以在 "target/classes" 文件夹中找到 SimpleApp.class 文件。 cd 到这个目录。
jar cfve file.jar SimpleApp.class
将此 JAR 文件放入您的项目的目标目录中。此 JAR 文件包含在将作业提交到 Spark 时 SimpleApp 类的依赖项。我猜你的项目结构如下。
simpleapp
- src/main/java
- org.apache.spark.examples
-SimpleApp.java
- lib
- dependent.jars (you can put all dependent jars inside lib directory)
- target
- simpleapp.jar (after compiling your source)
cd 到你的 spark 目录。我正在使用 spark-1.4.0-bin-hadoop2.6。你的 cmd 看起来像这样。
spark-1.4.0-bin-hadoop2.6>
使用以下命令启动 master 和 worker。
spark-1.4.0-bin-hadoop2.6> ./sbin/start-all.sh
如果这不起作用,则分别启动 master 和 slave。
spark-1.4.0-bin-hadoop2.6> ./sbin/start-master.sh
spark-1.4.0-bin-hadoop2.6> ./sbin/start-slaves.sh
使用 Spark Submit 提交您的 Spark 程序。如果你有我解释过的结构,那么在课堂上传递这个参数。
--class org.apache.spark.examples.SimpleApp
其他
--class SimpleApp
最后通过 spark submit 提交你的 spark 程序。
spark-1.4.0-bin-hadoop2.6>./bin/spark-submit --class SimpleApp --master local[2] /PATH-TO-YOUR-PROJECT-DIRECTORY/target/file.jar
这里我使用 local[2] 作为 master,所以我的程序将在两个线程上运行,但您可以在 --master 中将 master URL 作为--master spark://YOUR-HOSTNAME:7077 传递给
端口号 7077 是主 URL 的默认端口号。