Stand alone 是完整的spark运行环境,其中 Master 角色以Master进程存在,worker角色以worker进程存在, Driver角色在运行时存在于Master进程内,Executor运行于Worker进程内。
本节我们创建三台机器:
node1运行: Spark的Master进程
node2运行: spark的1个worker进程
node3运行: spark的1个worker进程
整个集群提供: 1个master进程 和 2个worker进程
进入EC2控制台,创建三台机器,命名为spark-server
,选择t3.medium
机型:
为实例选择keypair。在advanced detail
部分,设置user data:
#! /bin/bash
cd /home/ec2-user/
wget https://dlcdn.apache.org/spark/spark-3.5.0/spark-3.5.0-bin-hadoop3.tgz
tar -zvxf spark-3.5.0-bin-hadoop3.tgz
sudo yum update -y && sudo yum install java-17-amazon-corretto-devel.x86_64 -y
echo "export JAVA_HOME=/usr/lib/jvm/java-17-openjdk/"| tee -a ~/.bash_profile
上面的spark下载地址可以在 https://spark.apache.org/downloads.html 找到。
最后点击创建:
创建完成后,在ec2页面搜索spark-server
, 找到这三台机器,并分别命名为master, worker-1, worker-2
:
编辑安全组,为本机IP及172.31.0.0/16
放开所有端口的访问:
登录到spark-server-master
节点,进入spark的bin目录,运行spark-shell:
运行以下代码:
val textFile = spark.read.textFile("spark-shell.cmd")
textFile.count()
spark帮我们统计出了对应文件的行数:
访问 master节点的4040端口,看到了对应的Job: