更新时间:2024-08-03 GMT+08:00

在Linux环境中调测Spark应用

在程序代码完成开发后,您可以上传至Linux客户端环境中运行应用。使用Scala或Java语言开发的应用程序在Spark客户端的运行步骤是一样的。

  • 使用Python开发的Spark应用程序无需打包成jar,只需将样例工程复制到编译机器上即可。
  • 用户需保证worker和driver的Python版本一致,否则将报错:"Python in worker has different version %s than that in driver %s."。
  • 用户需保证Maven已配置华为镜像站中SDK的Maven镜像仓库,具体可参考配置华为开源镜像仓

编包并运行程序

  1. 在IntelliJ IDEA中,打开Maven工具窗口。

    在IDEA主页面,选择View->Tool Windows->Maven打开“Maven”工具窗口。
    图1 打开Maven工具窗口

    若项目未通过maven导入,需要执行以下操作:

    右键选择单击样例代码项目中的pom文件,选择Add as Maven Project,添加Maven项目。

    图2 添加Maven项目

  2. 通过Maven生成Jar包。

    1. 在Maven工具窗口,选择clean生命周期,执行Maven构建过程。
      图3 选择clean生命周期,执行Maven构建过程
    2. 在Maven工具窗口,选择package生命周期,执行Maven构建过程。
      图4 选择package生命周期,执行Maven构建过程
      在Run:中出现下面提示,则说明打包成功。
      图5 打包成功提示
    3. 您可以从项目目录下的target文件夹中获取到Jar包。
      图6 获取jar包

  3. 2中生成的Jar包(如CollectFemaleInfo.jar)复制到Spark运行环境下(即Spark客户端),如“/opt/female”。运行Spark应用程序,具体样例程序可参考开发Spark应用

    在Spark任务运行过程中禁止重启HDFS服务或者重启所有DataNode实例,否则可能会导致任务失败,并可能导致JobHistory部分数据丢失。

查看调测结果

Spark应用程序运行完成后,可通过如下方式查看应用程序的运行情况。

  • 通过运行结果数据查看应用程序运行情况。

    结果数据存储路径和格式已经由Spark应用程序指定,可通过指定文件获取。

  • 登录Spark WebUI查看应用程序运行情况。

    Spark主要有两个Web页面。

    • Spark UI页面,用于展示正在执行的应用的运行情况。

      页面主要包括了Jobs、Stages、Storage、Environment和Executors五个部分。Streaming应用会多一个Streaming标签页。

      页面入口:在YARN的Web UI界面,查找到对应的Spark应用程序。单击应用信息的最后一列“ApplicationMaster”,即可进入SparkUI页面。

    • History Server页面,用于展示已经完成的和未完成的Spark应用的运行情况。

      页面包括了应用ID、应用名称、开始时间、结束时间、执行时间、所属用户等信息。单击应用ID,页面将跳转到该应用的SparkUI页面。

  • 通过Spark日志获取应用程序运行情况。

    您可以查看Spark日志了解应用运行情况,并根据日志信息调整应用程序。相关日志信息可参考Spark2x日志介绍