1 、StandAlone运行原理
StandAlone真实地在多个机器之间搭建Spark集群的环境
StandAlone是完整的Spark运行环境,其中:
Master角色是以Master进程存在,Worker角色是以Worker进程存在
Driver和Executor运行于Worker进程内,由Worker提供资源供给它们运行。
StandAlone集群在进程上主要有3类进程:
主节点Master进程:
Master角色, 管理整个集群资源,并托管运行各个任务的Driver
从节点Workers:
Worker角色, 管理每个机器的资源,分配对应的资源来运行Executor(Task);
每个从节点分配资源信息给Worker管理,资源信息包含内存Memory和CPU Cores核数
历史服务器HistoryServer(可选):
Spark Application运行完成以后,保存事件日志数据至HDFS,启动HistoryServer可以查看应用运行相关信息。
2、启动与测试
在bin目录下,连接集群进行工作
(base) [smith@hadoop102 bin]$ ./pyspark --master spark://hadoop102:7077
Python 3.8.16 (default, Mar 2 2023, 03:21:46)
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
23/04/09 13:53:38 WARN HiveConf: HiveConf of name hive.metastore.event.db.notification.api.auth does not exist
23/04/09 13:53:39 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 3.2.0
/_/
Using Python version 3.8.16 (default, Mar 2 2023 03:21:46)
Spark context Web UI available at http://hadoop102:4040
Spark context available as 'sc' (master = spark://hadoop102:7077, app id = app-20230409135344-0000).
SparkSession available as 'spark'.
spark-submit(PI)
bin/spark-submit --master spark://hadoop102:7077 /opt/module/spark/examples/src/main/python/pi.py 100
应用程序(Application) -> Job -> 阶段 -> 子任务(线程)
4040:单个程序运行的时候绑定的端口可供查看本任务运行情况
8080:默认是StandAlone下,Master角色的WEB端口
18080:默认是历史服务器的端口