1、打包程序

以计算pi为例 ,需要将下图中代码注释掉,因为服务器集群不需要指定master ,master在命令行中设置即可

image.png

1.1 点击idea左上角file列表下的project structure ,然后依次点击Artifacts 添加jar 选择Empty

image.png

1.2 修改名称为spark 右键选择spark compile output 选择put into ,接着点击右下角的apply 和ok按钮即可

image.png

1.3 选择build 下的build Artifacts

image.png

1.4 在出现的界面选择rebuild或者build

image.png

1.5 打包出来的程序在out包下

image.png

1.6 将jar包上传到指定路径下 如 /root/study/spark-demo

image.png

1.7 用 spark-submit 启动应用

如果用户的应用程序被打包好了,它可以使用 bin/spark-submit 脚本来启动。这个脚本负责设置 Spark 和它的依赖的 classpath,并且可以支持 Spark 所支持的不同的 Cluster Manager 以及 deploy mode(部署模式):

  1. ./bin/spark-submit \
  2. --class <main-class> \
  3. --master <master-url> \
  4. --deploy-mode <deploy-mode> \
  5. --conf <key>=<value> \
  6. ... # other options
  7. <application-jar> \
  8. [application-arguments]

一些常用的 options(选项)有 :

  • —class:您的应用程序的入口点(例如 org.apache.spark.examples.SparkPi)
  • —master:集群的 master URL(例如 spark://23.195.26.187:7077)
  • —deploy-mode:是在 worker 节点(cluster)上还是在本地作为一个外部的客户端(client)部署您的 driver(默认:client)
  • —conf:按照 key=value 格式任意的 Spark 配置属性。对于包含空格的 value(值)使用引号包 “key=value” 起来。
  • application-jar:包括您的应用以及所有依赖的一个打包的 Jar 的路径。该 URL 在您的集群上必须是全局可见的,例如,一个 hdfs:// path 或者一个 file:// 在所有节点是可见的。
  • application-arguments:传递到您的 main class 的 main 方法的参数,如果有的话。

提交实际命令:计算pi
./bin/spark-submit —class com.kdy.spark.examples.JavaSparkPi —master spark://202.112.151.58:7077 —executor-memory 10G —total-executor-cores 32 /root/study/spark.jar

计算文件中的单词数量:需要将文件上传到服务器上

./bin/spark-submit —class com.kdy.spark.examples.JavaWordCount —master spark://202.112.151.58:7077 —executor-memory 10G —total-executor-cores 32 /root/study/spark.jar
image.png

spark web界面:http://202.112.151.58:9090/

./bin/spark-submit —class com.example.gene.spga.Write2File —master spark://202.112.151.58:7077 —executor-memory 10G —total-executor-cores 32 /root/study/gene.jar

./bin/spark-submit —class com.example.gene.spga.GraphDFS —master spark://202.112.151.58:7077 —executor-memory 10G —total-executor-cores 32 /root/study/gene.jar