
# 在Linux环境中编包并运行Spark程序
#### 操作场景
在程序代码完成开发后，您可以上传至Linux客户端环境中运行应用。使用Scala或Java语言开发的应用程序在Spark客户端的运行步骤是一样的。
![](https://support.huaweicloud.com/devg3-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/devg3-mrs/mrs_07_010002.html#mrs_07_010002__section13196125861611)
 
#### 操作步骤
1. 在IntelliJ IDEA中，打开Maven工具窗口。 
   在IDEA主页面，选择"View-\>Tool Windows-\>Maven"打开"Maven"工具窗口。
   图1打开Maven工具窗口   
   ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0291647349.png)
   若项目未通过maven导入，需要执行以下操作：
   右键选择单击样例代码项目中的pom文件，选择"Add as Maven Project"，添加Maven项目。
   图2添加Maven项目   
   ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0293883001.png)
   
   
2. 通过Maven生成Jar包。
   
   1. 在Maven工具窗口，选择clean生命周期，执行Maven构建过程。
      图3选择clean生命周期，执行Maven构建过程   
      ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0291647953.png) 
   
   2. 在Maven工具窗口，选择package生命周期，执行Maven构建过程。
      图4选择package生命周期，执行Maven构建过程   
      ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0291647954.png)
      在Run:中出现下面提示，则说明打包成功。
      图5打包成功提示   
      ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0278698016.png) 
   
   3. 您可以从项目目录下的target文件夹中获取到Jar包。
      图6获取jar包   
      ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0278698017.png) 
   
   
   
   
3. 将[2]中生成的Jar包（如CollectFemaleInfo.jar）复制到Spark运行环境下（即Spark客户端），如"/opt/female"。运行Spark应用程序，具体样例程序可参考[开发Spark应用](https://support.huaweicloud.com/devg3-mrs/mrs_07_200013.html)。
   
   ![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/caution_3.0-zh-cn.png)
   在Spark任务运行过程中禁止重启HDFS服务或者重启所有DataNode实例，否则可能会导致任务失败，并可能导致JobHistory部分数据丢失。
   
   
 
