首页 理论教育 交互式工具的启动方式

交互式工具的启动方式

时间:2023-06-25 理论教育 版权反馈
【摘要】:Spark 1.3版本在交互式工具spark-shell启动后,自动构建了这两个实例,通常用SparkContext代表Driver Program。图2.4Driver Program监控界面其中,driverhost为交互式工具启动节点的hostname。

交互式工具的启动方式

一、交互式工具的启动

进入Spark部署目录,基于单机模式启动spark-shell应用,在命令行提示符$后面输入命令./bin/spark-shell--master。如下所示:

978-7-111-51909-6-Chapter02-27.jpg

之后出现如下信息,这些信息中包含了交互式工具运行的环境信息(如是否带Hive等)以及预构建的一些实例(如预构建的SparkContext和SQLContext实例等):

978-7-111-51909-6-Chapter02-28.jpg

978-7-111-51909-6-Chapter02-29.jpg

最后会生成SparkContext和SQLContext两个实例,这两个实例对应的名称分别为sc和sqlContext。Spark 1.3版本在交互式工具spark-shell启动后,自动构建了这两个实例,通常用SparkContext代表Driver Program。

在实例中将直接使用sqlContext进行操作,生成SparkContext和SQLContext两个实例见下面日志信息:

978-7-111-51909-6-Chapter02-30.jpg

回车后就可以进入Spark应用程序的交互式界面,可以进行Spark应用程序的交互式开发、调试了。交互式界面上,输入命令的提示以scala>开头,执行输入的命令后会给出命令执行的日志和反馈信息。

当前交互式工具spark-shell使用了默认值--deploy-mode,即以客户端(Client)部署模式启动,因此,启动的Driver Program在提交节点上运行。通过启动节点的http://driv-er:4040地址可以打开Driver的Web Interface界面。

二、交互式工具的多次启动

(一)在Spark 1.3之前的版本

在Spark1.3之前的版本时,若要在相同节点上启动多个Spark应用程序时(特指部署模式为“Client”的情况下,Spark应用程序的Driver Program在启动节点上运行),比如用交互式工具的方式多次启动Spark应用程序时,系统会报以下错误,如图2.3所示:

这种情况下,后启动的Spark应用程序的Driver仍然使用了默认的4040端口,以致启动时地址被占用,进而最终Spark应用程序启动失败。

对应的解决方法如下:

1.查看代码:SparkUI.scala

978-7-111-51909-6-Chapter02-31.jpg

图2.3 Driver Program启动时地址被占用的界面

2.修改配置,添加spark.ui.port属性。如提交时,添加:--conf"spark.ui.port"=4041即可。

注意:Spark的属性配置可以通过三种方式进行设置:

1)可以在程序部署时的提交命令的--conf选项中通过设置Spark的配置文件(如conf/spark-defalut.conf)进行设置。

2)可以在Spark的环境变量文件中的java启动选项(如在conf/spark-env.sh文件中的环境变量Spark_DAEMON_JAVA_OPTS)里添加Spark的属性配置。

3)可以通过指定配置文件等方式进行设置。

如果spark.ui.port的值设置为0,系统就会随机选取一个端口号。参考源码:java.net.ServerSocket:ServerSocket对象的绑定端口为0,getLocalPort方法返回一个随机的端口(这类端口被称为匿名端口)。

(二)Spark 1.3版本

Spark1.3版本可在一个节点上多次启动Spark应用程序,如多次运行交互式工具spark-shell。具体方式是,Spark1.3在已启动应用程序的计算机上再次启动应用时,如果启动应用的命令没有指定Driver Progam的Web Interface的端口号的话,启动的应用会先从默认的端口4040开始启动,由于该端口已经被占用,因此首次启动时会报错,如下面的日志所示:

978-7-111-51909-6-Chapter02-32.jpg

978-7-111-51909-6-Chapter02-33.jpg

当默认端口4040绑定失败后,提交应用程序会递增端口号(4041、4042、……),尝试重新启动Spark应用,直到找到一个可用的端口号为止,这时候,启动Driver Program成功,进入交互式界面。下列代码所示为已经成功绑定了4041端口号,成功启动Spark应用,代码执行结果如下:

978-7-111-51909-6-Chapter02-34.jpg

978-7-111-51909-6-Chapter02-35.jpg

三、DriverProgram的WebInterface界面

Driver Program的Web Interface界面用于查看该Driver Program的信息,包括Driver Pro-gram的Jobs信息、Stages信息、Storage信息、Environment信息和Executors信息。

(一)打开Web Interface页面(www.xing528.com)

Web Interface地址:http∶//driverhost∶4040/jobs/,界面内容如图2.4所示。

978-7-111-51909-6-Chapter02-36.jpg

图2.4 Driver Program监控界面

其中,driverhost为交互式工具启动节点的hostname。

Web Interface界面包含Spark版本信息,以及当前Driver Program中的Jobs、Stages、Storage、Environment以及Executors信息。

注意:当使用hostname时,需要保证已经在系统的hosts配置文件中添加了hostname与IP地址的对应关系。在Linux系统上,hosts的配置方法如下:

1.使用vim工具打开hosts文件:vim/etc/hosts。

2.在文件中添加配置的hostname与IP的映射关系,比如:

978-7-111-51909-6-Chapter02-37.jpg

(二)Web Interface界面内容解析

Driver Program的Web Interface界面中各个Tab页包含的详细信息如下:

1.Jobs页。打开driver program监控界面时的默认页,如图2.5所示。

在Jobs页中,包含了当前Driver Program运行持续的时间,当前Jobs的调度模式(默认调度模式为FIFO)以及全部Jobs的具体信息。

注意:由于当前未提交任何Job,界面的Jobs内容为空。

2.Stages页。显示当前Driver Program所有Jobs的Stages信息,包含的具体内容如图2.6所示。

978-7-111-51909-6-Chapter02-38.jpg

图2.5 Driver Program监控界面的Jobs页

978-7-111-51909-6-Chapter02-39.jpg

图2.6 Driver Program监控界面的Stages页

在Stages页面,包含了当前Driver Program运行持续的时间,当前Stages的调度模式(默认调度模式为FIFO)以及全部Jobs的Stages的具体信息。

3.Storage页。显示当前Driver Program所有Jobs的Storage信息,包含的具体内容如图2.7所示。

978-7-111-51909-6-Chapter02-40.jpg

图2.7 Driver Program监控界面的Storage页

在Stages页面,包含了当前Driver Program的存储信息,存储信息包含了RDD的名字、存储级别、缓存的分区数、缓存分区占全部分区的比例、缓存在内存的数据大小、缓存在Tachyon中的数据大小、存储在磁盘的数据大小。

4.Environment页。显示当前Driver Program的Environment信息,包含的具体内容如图2.8所示。

在Environment页面,包含了当前Driver Program的环境配置信息,具体包含四大类:Runtime Information、Spark Properties、System Properties以及Classpath Entries。

5.Executors页。显示当前Driver Program的Executors信息,包含的具体内容如图2.9所示。

在Environment页面,包含了当前Spark应用程序用到的Executors信息,包含当前Spark应用程序分配的总内存大小,使用的磁盘大小以及Executor的具体信息。

Executor的信息包含:Executor的ID、执行的地址(host:port)、RDD的分块数(Blocks)、内存使用大小、磁盘使用大小、当前Active状态的任务数、失败的任务数、总的任务数等信息。

由于当前Spark应用程序仅启动了Driver Program,故只分配了一个Executor,并且Exec- utor ID为<driver>。

978-7-111-51909-6-Chapter02-41.jpg

图2.8 Driver Program监控界面的Environment页

978-7-111-51909-6-Chapter02-42.jpg

图2.9 Driver Program监控界面的Executors页

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈