Spark应用程序在集群中运行时,需要借助于集群管理器(包括本地集群管理器、YARN、Mesos)来为其实现资源管理调度服务,实现对集群中各个机器的访问(可以参考前面章节的内容:Spark集群部署模式)。这里通过简单的示例介绍其中两种:独立集群管理器和Hadoop Yarn集群管理器。通过介绍,我们可以了解到如何在这两种集群管理器上运行Spark应用程序。
启动Spark集群
请登录Linux系统,打开一个终端。
启动Hadoop集群
- cd /usr/local/hadoop/
- sbin/start-all.sh
Shell 命令
启动Spark的Master节点和所有slaves节点
- cd /usr/local/spark/
- sbin/start-master.sh
- sbin/start-slaves.sh
Shell 命令
独立集群管理器
(1)在集群中运行应用程序JAR包
向独立集群管理器提交应用,需要把spark://master:7077作为主节点参数递给spark-submit。下面我们可以运行Spark安装好以后自带的样例程序SparkPi,它的功能是计算得到pi的值(3.1415926)。
在Shell中输入如下命令:
- 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上,用于后面的测试。
- cd /usr/local/hadoop/
- # 下面这条命令中,我们把spark安装目录下的README.md文件上传到分布式文件系统HDFS的根目录下
- bin/hadoop fs -put /usr/local/spark/README.md /
Shell 命令
在Shell中输入如下命令启动进入pyspark:
- cd /usr/local/spark/
- bin/pyspark --master spark://master:7077
Shell 命令
可以在pyspark中输入如下代码进行测试:
- >>> textFile = sc.textFile("hdfs://master:9000/README.md")
- >>> textFile.count()
- 99
- >>> textFile.first()
- # Apache Spark
Python
用户在独立集群管理Web界面查看应用的运行情况,可以浏览器中输入地址进行查看(http://master:8080/),如下图:
Hadoop YARN管理器
(1)在集群中运行应用程序JAR包
向Hadoop YARN集群管理器提交应用,需要把yarn-cluster作为主节点参数递给spark-submit。
请登录Linux系统,打开一个终端,在Shell中输入如下命令:
- bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster examples/jars/spark-examples_2.11-2.0.2.jar
Shell 命令
运行后,根据在Shell中得到输出的结果地址查看,如下图:
复制结果地址到浏览器,点击查看Logs,再点击stdout,即可查看结果,如下图:
(2)在集群中运行pyspark
也可以用pyspark连接到独立集群管理器上。
请登录Linux系统,打开一个终端,在Shell中输入如下命令启动进入spark-shell:
- bin/pyspark --master yarn
Shell 命令
在pyspark中输入如下代码进行测试:
- >>> textFile = sc.textFile("hdfs://master:9000/README.md")
- >>> textFile.count()
- 99
- >>> textFile.first()
- # Apache Spark
Python
用户在Hadoop Yarn集群管理Web界面查看所有应用的运行情况,可以在浏览器中输入地址进行查看(http://master:8088/cluster) ,如下图: