该算法是利用蒙特·卡罗算法求圆周率PI,通过计算机模拟大量的随机数,最终会计算出比较精确的π
bin/spark-submit
--class org.apache.spark.examples.SparkPi \
--master spark://node01:7070 \
--executor-memory 1G \
--total-executor-cores 2 \
examples/jars/spark-examples_2.11-2.1.3.jar \
10
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node01:7077,node02:7077,node03:7077
--executor-memory 1G \
--total-executor-cores 2 \
example/jars/spark-examples_2.11-2.1.3jar \
10
spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令下用scala编写spark程序
单机模式:通过本地N个线程跑任务,只运行一个SparkSubmit进程。
hello me
hello you
hello her
sc.textFile("file:///root///words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
代码说明
sc:Spark-Shell中已经默认将SparkContext类初始化为对象sc,用户代码如果需要用到,则直接用sc即可。
textFile:读取数据文件
flatMap:对文件中的每一行数据进行压平切分,这里按照空格分割。
map:对出现的每一个单词记为1,组成新的元组(word,1)
reduceByKey:对相同的单词出现的次数进行累加
collect:触发任务执行,收集结果数据。
4. 观察结果
sc.textFile("/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
spark-shell \
--master spark://node01:7070 \
--executor-memory 1g \
--total-executor-cores 2
参数说明:
–master spark://node1:7077 指定Master的地址
–executor-memory 1g 指定每个worker可用内存为1g
–total-executor-cores 2 指定整个集群使用的cup核数为2个
注意:
如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。
sc.textFile("/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("/wc")