一、安装spark
1.上传压缩包并解压
2.在conf目录下配置slaves
cp slaves.template slaves
//在master机上配置worker节点
hadoop2
hadoop3
3.配置spark-env.sh
cp spark-env.sh.template spark-env.sh
export SPARK_MASTER_IP=hadoop1
export SPARK_MASTER_PORT=7077
//每台worker使用的cpu核数
export SPARK_WORKER_CORES=2
//每台worker的使用内存
export SPARK_WORKER_MEMORY=1g
//webUI页面端口号
export SPARK_MASTER_WEBUI_PORT=8888
4.将spark文件复制到其他机子上
scp -r spark-2.4.0-bin-hadoop2.7/ hadoop2:/usr/local/
5.验证
在sbin目录下
二、运行案例
spark官方提供了一个案例,求π的值
object SparkPI {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Spark Pi").setMaster("local[2]")
val spark = new SparkContext(conf);
val slices = 100;
val n = 1000 * slices //选n个点
val count = spark.parallelize(1 to n,slices).map({ i =>
def random: Double = java.lang.Math.random()
//这里取圆心为坐标轴原点,在正方向中不断的随机选点
val x = random * 2 - 1
val y = random * 2 - 1
println(x+"--"+y)
//通过在圆内的点
if (x*x + y*y < 1) 1 else 0
}).reduce(_ + _)
//pi=S2=S1*count/n
println("Pi is roughly " + 4.0 * count / n)
spark.stop()
}
}
在bin目录下执行
./spark-submit --master spark://hadoop1:7077 --class org.apache.spark.examples.SparkPi /usr/local/spark-2.4.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.0.jar