Spark应用程序在集群中运行时,需要借助于集群管理器(包括本地集群管理器、YARN、Mesos)来为其实现资源管理调度服务,实现对集群中各个机器的访问(可以参考前面章节的内容:Spark集群部署模式)。这里通过简单的示例介绍其中两种:独立集群管理器和Hadoop Yarn集群管理器。通过介绍,我们可以了解到如何在这两种集群管理器上运行Spark应用程序。

启动Spark集群

请登录Linux系统,打开一个终端。
启动Hadoop集群


 


  1. cd /usr/local/hadoop/
  2. sbin/start-all.sh

Shell 命令

启动Spark的Master节点和所有slaves节点


 


  1. cd /usr/local/spark/
  2. sbin/start-master.sh
  3. sbin/start-slaves.sh

Shell 命令

独立集群管理器

(1)在集群中运行应用程序JAR包
向独立集群管理器提交应用,需要把spark://master:7077作为主节点参数递给spark-submit。下面我们可以运行Spark安装好以后自带的样例程序SparkPi,它的功能是计算得到pi的值(3.1415926)。
在Shell中输入如下命令:


 


  1. bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 examples/jars/spark-examples_2.11-2.0.2.jar 100 2>&1 | grep "Pi is roughly"

Shell 命令

(2)在集群中运行pyspark
也可以用spark-shell连接到独立集群管理器上。
首先做一点准备工作,把一个README.md文件拷贝到HDFS上,用于后面的测试。


 


  1. cd /usr/local/hadoop/
  2. # 下面这条命令中,我们把spark安装目录下的README.md文件上传到分布式文件系统HDFS的根目录下
  3. bin/hadoop fs -put /usr/local/spark/README.md /

Shell 命令

在Shell中输入如下命令启动进入pyspark:


 


  1. cd /usr/local/spark/
  2. bin/pyspark --master spark://master:7077

Shell 命令

可以在pyspark中输入如下代码进行测试:


 


  1. >>> textFile = sc.textFile("hdfs://master:9000/README.md")
  2. >>> textFile.count()
  3. 99
  4. >>> textFile.first()
  5. # Apache Spark

Python

用户在独立集群管理Web界面查看应用的运行情况,可以浏览器中输入地址进行查看(http://master:8080/),如下图:

Ubuntu ideal spark 集群运行 spark集群运行python程序_spark

Hadoop YARN管理器

(1)在集群中运行应用程序JAR包
向Hadoop YARN集群管理器提交应用,需要把yarn-cluster作为主节点参数递给spark-submit。
请登录Linux系统,打开一个终端,在Shell中输入如下命令:


 


  1. bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster examples/jars/spark-examples_2.11-2.0.2.jar

Shell 命令

运行后,根据在Shell中得到输出的结果地址查看,如下图:

Ubuntu ideal spark 集群运行 spark集群运行python程序_spark_02


复制结果地址到浏览器,点击查看Logs,再点击stdout,即可查看结果,如下图:

Ubuntu ideal spark 集群运行 spark集群运行python程序_Shell_03


Ubuntu ideal spark 集群运行 spark集群运行python程序_spark_04

(2)在集群中运行pyspark
也可以用pyspark连接到独立集群管理器上。
请登录Linux系统,打开一个终端,在Shell中输入如下命令启动进入spark-shell:


 


  1. bin/pyspark --master yarn

Shell 命令

在pyspark中输入如下代码进行测试:


 


  1. >>> textFile = sc.textFile("hdfs://master:9000/README.md")
  2. >>> textFile.count()
  3. 99
  4. >>> textFile.first()
  5. # Apache Spark

Python

用户在Hadoop Yarn集群管理Web界面查看所有应用的运行情况,可以在浏览器中输入地址进行查看(http://master:8088/cluster) ,如下图:

Ubuntu ideal spark 集群运行 spark集群运行python程序_Shell_05