
# 在Linux环境中调测Spark应用
在程序代码完成开发后，您可以上传至Linux客户端环境中运行应用。使用Scala或Java语言开发的应用程序在Spark客户端的运行步骤是一样的。
![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
- 使用Python开发的Spark应用程序无需打包成jar，只需将样例工程复制到编译机器上即可。
- 用户需保证worker和driver的Python版本一致，否则将报错："Python in worker has different version %s than that in driver %s."。
- 用户需保证Maven已配置华为镜像站中SDK的Maven镜像仓库，具体可参考[配置华为开源镜像仓](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010002.html#mrs_07_010002__zh-cn_topic_0000001918070240_zh-cn_topic_0000001298931189_section13196125861611)。
 
#### 编包并运行程序
1. 在IntelliJ IDEA中，打开Maven工具窗口。 
   在IDEA主页面，选择"View-\>Tool Windows-\> \> Maven"打开"Maven"工具窗口。
   图1打开Maven工具窗口   
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001299212773.png "点击放大")
   若项目未通过maven导入，需要执行以下步骤：
   右键选择单击样例代码项目中的pom文件，选择"Add as Maven Project"，添加Maven项目
   图2添加Maven项目   
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001252533262.png)
   
   
2. 通过Maven生成Jar包。
   
   1. 在Maven工具窗口，选择clean生命周期，执行Maven构建过程。
      图3选择clean生命周期，执行Maven构建过程   
      ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001252373488.png "点击放大") 
   
   2. 在Maven工具窗口，选择package生命周期，执行Maven构建过程。
      图4选择package生命周期，执行Maven构建过程   
      ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001299093301.png "点击放大")
      在Run:中出现下面提示，则说明打包成功
      图5打包成功提示   
      ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001298932153.png "点击放大") 
   
   3. 您可以从项目目录下的target文件夹中获取到Jar包。
      图6获取jar包   
      ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001252213788.png "点击放大") 
   
   
   
   
3. 将[2]中生成的Jar包（如CollectFemaleInfo.jar）复制到Spark运行环境下（即Spark客户端），如"/opt/female"。运行Spark应用程序，具体样例程序可参考[开发Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410011.html)。
   
   ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/caution_3.0-zh-cn.png)
   在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日志介绍](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1971.html)。
  
 
