安装
运行案例
在linux中的spark根目录运行
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[2] \
./examples/jars/spark-examples_2.11-2.1.1.jar 100
然后观察控制台结果,
该算法是利用蒙特·卡罗算法求PI,如果想更精确可以给最后面的参数加大,比如说给100 改成 1000 或者 10000 这样计算会更精确,但是计算时间更长.
20/10/29 16:42:49 INFO DAGScheduler: Job 0 finished: reduce at SparkPi.scala:38, took 4.140165 s
Pi is roughly 3.1411843141184312
语法说明
使用spark-submit来发布应用程序.
语法
./bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
- —master 是用什么模式,默认为local. 表示在本机运行.,方括号里面的数字表示申请的cpu核心数资源,如果是2. ,那么就是申请两个cpu资源,在Local模式玩的话,最好是至少指定两个2cpu资源,因为如果你指定了大于1的话,就是多线程,相当于分布式执行,可以模拟出来一些分布式才会出现的问题,如果你指定了1,就是单线程去执行任务,那么单线程可能不会暴露出一些在多线程分布式才会出现的问题.
- —class 你的应用的启动类 (如 org.apache.spark.examples.SparkPi)
- —deploy-mode 是否发布你的驱动到 worker节点(cluster 模式) 或者作为一个本地客户端 (client 模式) (default: client),这个配置Local模式一般是没意义的,集群模式才有意义.
- —conf: 任意的 Spark 配置属性, 格式key=value. 如果值包含空格,可以加引号”key=value”
- •application-jar: 打包好的应用 jar,包含依赖. 这个 URL 在集群中全局可见。 比如hdfs:// 共享存储系统, 如果是 file:// path, 那么所有的节点的path都包含同样的jar
- •application-arguments: 传给main()方法的参数
•—executor-memory 1G 指定每个executor可用内存为1G
•—total-executor-cores 6 指定所有executor使用的cpu核数为6个
•—executor-cores 表示每个executor使用的 cpu 的核数