安装

运行案例

在linux中的spark根目录运行

  1. bin/spark-submit \
  2. --class org.apache.spark.examples.SparkPi \
  3. --master local[2] \
  4. ./examples/jars/spark-examples_2.11-2.1.1.jar 100

然后观察控制台结果,
该算法是利用蒙特·卡罗算法求PI,如果想更精确可以给最后面的参数加大,比如说给100 改成 1000 或者 10000 这样计算会更精确,但是计算时间更长.

  1. 20/10/29 16:42:49 INFO DAGScheduler: Job 0 finished: reduce at SparkPi.scala:38, took 4.140165 s
  2. Pi is roughly 3.1411843141184312

语法说明

使用spark-submit来发布应用程序.
语法

  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]
  1. —master 是用什么模式,默认为local. 表示在本机运行.,方括号里面的数字表示申请的cpu核心数资源,如果是2. ,那么就是申请两个cpu资源,在Local模式玩的话,最好是至少指定两个2cpu资源,因为如果你指定了大于1的话,就是多线程,相当于分布式执行,可以模拟出来一些分布式才会出现的问题,如果你指定了1,就是单线程去执行任务,那么单线程可能不会暴露出一些在多线程分布式才会出现的问题.
  2. —class 你的应用的启动类 (如 org.apache.spark.examples.SparkPi)
  3. —deploy-mode 是否发布你的驱动到 worker节点(cluster 模式) 或者作为一个本地客户端 (client 模式) (default: client),这个配置Local模式一般是没意义的,集群模式才有意义.
  4. —conf: 任意的 Spark 配置属性, 格式key=value. 如果值包含空格,可以加引号”key=value”
  5. •application-jar: 打包好的应用 jar,包含依赖. 这个 URL 在集群中全局可见。 比如hdfs:// 共享存储系统, 如果是 file:// path, 那么所有的节点的path都包含同样的jar
  6. •application-arguments: 传给main()方法的参数
    •—executor-memory 1G 指定每个executor可用内存为1G
    •—total-executor-cores 6 指定所有executor使用的cpu核数为6个
    •—executor-cores 表示每个executor使用的 cpu 的核数