体验第一个Spark程序
Spark集群已经部署完毕,接下来我们使用Spark官方示例SparkPi,体验Spark集群提交任务的流程。首先进入spark目录,执行命令如下。
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop01:7077 \
--executor-memory 1G \
--total-executor-cores 1 \
examples/jars/spark-examples_2.11-2.3.2.jar \
10
上述命令参数表示含义如下:
- --master spark://hadoop01:7077 :指定Master的地址是hadoop01节点
- --executor-memory 1G :指定每个executor的可用内存为1G
- --total-executor-cores 1 :指定每个executor使用的CPU核心数为1个
按回车键提交Spark作业,观察Spark集群管理界面,如图1所示。
图1 查看Spark正在执行的应用
在图1中,“Running Applications”列表表示当前Spark集群正在计算的作业,执行几秒后,刷新界面,如图2所示。
图2 查看执行完毕的应用
从图2可以看出,在Completed Applications表单下,当前应用执行完毕,返回控制台查看输出信息,如图3所示。
图3 Spark计算圆周率
从图3可以看出,Pi值已经被计算完毕,即Pi is roughly 3.140691140691141。
在高可用模式提交任务时,可能涉及多个Master,所以对于应用程序的提交就发生了一些变化,因为应用程序需要知道当前的Master的IP地址和端口,为了解决这个问题,只需要在SparkContext指向一个Master列表,执行提交任务的命令如下。
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop01:7077,hadoop02:7077,hadoop03:7077 \
--executor-memory 1G \
--total-executor-cores 1 \
examples/jars/spark-examples_2.11-2.3.2.jar \
10