本地单机模式
本地单机模式下,所有的Spark进程均运行于同一个JVM中,并行处理则通过多线程来实现。在默认情况下,单机模式启动与本地系统的CPU核心数目相同的线程。如果要设置并行的级别,则以local[N]的格式来指定一个master变量,N表示要使用的线程数目。
例子:
caiyong@caiyong:/opt/spark$ ./bin/run-example org.apache.spark.examples.SparkPi
[Stage 0:> (0 + 0) / 2]15/10/18 20:11:07 WARN SizeEstimator: Failed to check whether UseCompressedOops is set; assuming yes
Pi is roughly 3.14056
设置并行级别的情况:
caiyong@caiyong:/opt/spark$ master=local[3] ./bin/run-example org.apache.spark.examples.SparkPi
[Stage 0:> (0 + 0) / 2]15/10/18 20:25:21 WARN SizeEstimator: Failed to check whether UseCompressedOops is set; assuming yes
Pi is roughly 3.14206
集群单机模式
Spark集群由两类程序构成:一个驱动程序和多个执行程序。本地模式时所有的处理都运行在同一个JVM内,在集群模式时通常运行在多个不同的节点上。集群单机模式通常包括:
1.一个运行Spark单机主进程和启动程序的主节点;
2.各自运行一个执行程序的进程的工作节点。
在单机集群上运行,只需要将主节点的URL(IP:PORT)设置给master变量就可以了。
caiyong@caiyong:/opt/spark$ master=192.168.0.100:7077 ./bin/run-example org.apache.spark.examples.SparkPi
Pi is roughly 3.14157