Spark的运行模式及运行命令

local单机模式:
结果xshell可见:
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[1] ./lib/spark-examples-1.3.1-hadoop2.4.0.jar 100

standalone集群模式:
需要的配置项
1, slaves文件
2, spark-env.sh
export JAVA_HOME=/usr/soft/jdk1.7.0_71
export SPARK_MASTER_IP=spark001
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=1g

standalone集群模式:
之client模式:
结果xshell可见:
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://spark001:7077 --executor-memory 1G --total-executor-cores 1 ./lib/spark-examples-1.3.1-hadoop2.4.0.jar 100

standalone集群模式:
之cluster模式:
结果spark001:8080里面可见!
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://spark001:7077 --deploy-mode cluster --supervise --executor-memory 1G --total-executor-cores 1 ./lib/spark-examples-1.3.1-hadoop2.4.0.jar 100


standalone模式HA:

vim spark-env.sh 
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=spark001:2181,spark002:2181,spark003:2181"


Yarn集群模式:
需要的配置项
1, spark-env.sh
export HADOOP_CONF_DIR=$HADOOP_INSTALL/etc/hadoop
export YARN_CONF_DIR=$HADOOP_INSTALL/etc/hadoop
export SPARK_HOME=/usr/hadoopsoft/spark-1.3.1-bin-hadoop2.4
export SPARK_JAR=/usr/hadoopsoft/spark-1.3.1-bin-hadoop2.4/lib/spark-assembly-1.3.1-hadoop2.4.0.jar
export PATH=$SPARK_HOME/bin:$PATH
2, ~/.bash_profile
配置好hadoop环境变量

Yarn集群模式:
client模式:
结果xshell可见:
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client --executor-memory 1G --num-executors 1 ./lib/spark-examples-1.3.1-hadoop2.4.0.jar 100

Yarn集群模式:
cluster模式:
结果spark001:8088里面可见!

./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster --executor-memory 1G --num-executors 1 ./lib/spark-examples-1.3.1-hadoop2.4.0.jar 100



Standalone模式:


1:实验配置

虚拟机cdh1(4G内存,1CPU*2CORE)

虚拟机cdh2(4G内存,1CPU*2CORE)

虚拟机cdh3(4G内存,1CPU*2CORE)

spark配置:

conf/spark-env.sh

 
  
  1. export SPARK_MASTER_IP=cdh1 
  2. export SPARK_WORKER_CORES=2 
  3. export SPARK_WORKER_INSTANCES=2 
  4. export SPARK_MASTER_PORT=7077 
  5. export SPARK_WORKER_MEMORY=1200m 
  6. export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT} 

conf/slaves

 
  
  1. cdh2 
  2. cdh3 

2:启动spark

在这里spark作为一个资源管理器的存在,类似YARN、Mesos的角色,为Spark Application提供资源。

在本配置里,这个standalone spark所拥有的资源是:2个Worker Node,每个Worker Node提供2Core、2个INSTANCE(也就是启动2个worker 实例)、1.2G内存。所以总的资源是:4个Worker,8个Core,4.8G内存。可以通过http://cdh1:8080获取相应的信息:

spark概念解析 - mmicky - mmicky 的博客

3:启动spark-shell

spark-shell 是一个spark application,运行时需要向资源管理器申请资源,如standalone spark、YARN、Mesos。本例向standalone spark申请资源,所以在运行spark-shell时需要指向申请资源的standalone spark集群信息,其参数为MASTER。如果未在spark-env.sh中申明MASTER,则使用命令MASTER=spark://cdh1:7077 bin/spark-shell启动;如果已经在spark-env.sh中申明MASTER,则可以直接用bin/spark-shell启动。

由于spark-shell缺省的情况下,会申请所有的CPU资源,也就是8个Core,本实验先看看使用3个Core的情况。至于spark-shell申请内存资源是通过Application中SparkContext中配置-->环境变量SPARK_MEM-->缺省值512M这样的优先次序来决定,本例中未做任何设置 ,故每个Executor使用的是512M。