Spark各种架构和提交方式的组合

Spark各种架构和提交方式的组合

  1. Spark on Yarn架构+Client提交模式

spark-submit --master yarn-client --class org.apache.spark.examples.SparkPi spark-1.6.0/lib/spark-examples-1.6.

0-hadoop2.6.0.jar 10

或者

spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi spark-1.6.0/lib/spark-examples-1.6.

0-hadoop2.6.0.jar 10

  1. Spark on Yarn架构+Cluster提交模式

spark-submit --master yarn-cluster --class org.apache.spark.examples.SparkPi spark-1.6.0/lib/spark-examples-1.6.

0-hadoop2.6.0.jar 10

或者

spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi spark-1.6.0/lib/spark-examples-1.6.

0-hadoop2.6.0.jar 10

  1. Spark Master HA架构+Client提交模式

spark-submit --master spark://faith-Fedora:7077,faith-Ubuntu:7077,faith-openSUSE:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi spark-1.6.0/lib/spark-examples-1.6.0-hadoop2.6.0.jar 10

  1. Spark Master HA架构+Cluster提交模式

spark-submit --master spark://faith-Fedora:7077,faith-Ubuntu:7077,faith-openSUSE:7077 --deploy-mode cluster --class org.apache.spark.examples.SparkPi spark-1.6.0/lib/spark-examples-1.6.0-hadoop2.6.0.jar 10

  1. 这四种方式的注意事项

    1. spark-env.sh的HADOOP_CONF_DIR属性

当启用了Spark的History Server日志功能之后,由于Spark需要将日志存储在HDFS的目录上,所以Spark需要知道HDFS的地址,例如:hdfs://mycluster/...所以需要在spark-env.sh上配置HADOOP_CONF_DIR属性,如下:

Spark各种架构和提交方式的组合

现在的问题是,这个配置项在哪个节点上配置??

  1. master HA + cluster,由于这种模式下Driver进程有Master进程在资源充足的Worker节点中随机选取一台Worker节点启动Driver进程,所以如果Driver进程所在节点没有配置spark-env.sh的话,将抛出异常。

Spark各种架构和提交方式的组合

Spark各种架构和提交方式的组合

  1. master HA client模式下,只需要配置Spark Client节点的spark-env.sh文件即可:

Spark各种架构和提交方式的组合

Spark各种架构和提交方式的组合

  1. yarn+client

如果使用yarn+client、yarn+cluster这两种yarn的架构之下。由于使用的是yarn资源调度框架,而yarn本身隶属于Hadoop的一部分,集群会知道HADOOP_CONF_DIR在哪里。所以不用配置。

Spark各种架构和提交方式的组合

client提交方式可以直接在命令行看结果

Spark各种架构和提交方式的组合

 

  1. yarn+cluster

Spark各种架构和提交方式的组合

Spark各种架构和提交方式的组合