一、执行第一个Spark程序

1、执行程序

我们执行一下Spark自带的一个例子,利用蒙特·卡罗算法求PI:

启动Spark集群后,可以在集群的任何一台机器上执行一下命令:

在执行过程中bash上的信息:

Spark系列—02 Spark程序牛刀小试-LMLPHP

执行完成bash上的信息:

Spark系列—02 Spark程序牛刀小试-LMLPHP

执行过程中WebUI上的信息:

Spark系列—02 Spark程序牛刀小试-LMLPHP

Spark系列—02 Spark程序牛刀小试-LMLPHP

执行完以后WebUI上的信息:

Spark系列—02 Spark程序牛刀小试-LMLPHP

2、命令解析

二、使用 spark-shell

spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序,spark-shell也是一个Driver。

1、启动 spark-shell

这个命令的解析其实和上面的spark-submit是一样的,我在这再啰嗦一遍:

参数说明:

还有一点需要非常注意:

如果启动 spark shell 时没有指定master地址,但是也可以正常启动 spark shell 和执行 spark shell 中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。

还要说明一点:

spark shell 中已经默认将SparkContext类初始化为对象sc。用户代码如果需要用到,则直接应用 sc 即可。SparkContext是Spark集群的入口,Driver只有初始化了SparkContext才可以向Spark集群提交任务,所以这个SparkContext和重要,以后我们会详细介绍整个SparkContext的初始化流程的,现在可以先记住SparkContext是集群的入口,就像Spring中的ApplicationContext一样。

2、在spark shell中编写WordCount程序

(1)首先启动hdfs

(2)向hdfs上传文件words.txt 到 hdfs://hadoop01:9000/spark/words.txt

words.txt的内容:

(3)在spark shell 中用scala语言编写spark程序:

(4)使用hdfs命令查看结果:

(5)程序简单说明:

最后:

也可以使用 IDEA 编写完一个程序后打包,使用spark-submit方式提交到集群,在这里我就不写了。一定要注意spark-submit的配置命令不要出错,还要注意自己的程序需要的参数的正确,不要忘了起hdfs。

04-18 19:06
查看更多