开发者学堂课程【大数据 Spark2020最新课程(知识精讲与实战演练)第一阶段:Spark 集群搭建_第一个案例】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/688/detail/11943
Spark 集群搭建_第一个案例
内容介绍:
一、如何运行 spark 程序
二、概述蒙特克罗算法
一、运行 spark 程序
节课分析具体案例,具体步骤如下:Step2 运行 spark 示例任务中,首先执行命令Bin/spark-submit\
,
其主要作用是提交 spark 程序,需注意,提交spark 程序时,在此代码处
/export/servers/spark/examples/jars/spark-examples_2.11-2.2.3.jar\)
指定 jar 报位置, jar 报中可能会有多份程序,此时需要,如 calss 的参数指定要运行的 calss 路径,然后使用如 master 的参数把程序提交到 spark 集群之中, master 对应的是 spark 集群当中的主节点位置,由于配置了高可用,则需把所有的有可能是 master 的地址全部列举出来,如若有其一 master 不可用,则转入另一个 master,代码中的100最终传递到 SparkPi 的慢方法中,它为其参数,中间位置的参数是运行时参数的指定。在上生产,程序运行到集群中此命令常见。
Step1 进入 Spark 安装目录中
cd/export/servers/spark/
Step2 运行 spark 示例任务(重点)
Bin/spark-submit\
--class org.spache.spark.example.SparkPi\
--master spark://node01:7077,node02:7077,node03:7077\
--executor-memory 1G\
--total-executor-cores 2\
/export/servers/spark/examples/jars/spark-
examples_2.11-2.2.3.jar\
100
Step3 运行结果
Pi is roughly 3.141550671141551
进入窗口执行如图:
得到运行结果为 Pi is roughly 3.1423323142332316,该算法为使用蒙特卡洛的方法求圆周率。
二、蒙特卡洛算法
即:
Area of Circle = π·r² = π
Area of square (2r)² 4
1.在一个正方形中,内切出一个圆形
A(Rec) = 4
A(Inc) π
2.随机向正方形内均匀投 n 个点,其落入内切圆的内外点的概率满足如下:
π/4=P(In)/P(Out)
若要知道1.中的正方形与圆的面积之比,在正方形中进行呈正态分布的随机投点,假设已知在正方形内切圆的点数,以及圆外部点的个数,则可知两面积的比值,因此要知道点是否在圆内部,计算圆心与点的距离,若距离小于半径在圆内,反之,大于半径在圆外。“
随机投点一亿次或一万次”,该任务使用 MR 比较慢,因为存在太多中间结果, spark 可以在内存中保存中间结果,且 spark 比较擅长进行迭代运算。
以上为蒙特卡洛的基本理论,通过蒙特卡洛,便可以通过迭代循环投点的方式实现蒙特卡洛算法求圆周率。