
# Spark应用开发流程介绍
Spark包含Spark Core、Spark SQL和Spark Streaming三个组件，其应用开发流程相同。
开发流程中各阶段的说明如[图1]和[表1]所示。
图1Spark应用程序开发流程   
![](https://support.huaweicloud.com/devg-mrs/zh-cn_image_0250982430.jpg)
 表1Spark应用开发的流程说明 
| **阶段**                                                                 | **说明**                                                                                                        | **参考文档**                                                                                                                                                             |
|:---|:---|:---|
| 了解基本概念                                                                 | 在开始开发应用前，需要了解Spark的基本概念，根据实际场景选择需要了解的概念，分为Spark Core基本概念、Spark SQL基本概念和Spark Streaming基本概念。                   | [Spark应用开发常用概念](https://support.huaweicloud.com/devg-mrs/mrs_06_0150.html)                                                                                           |
| 准备开发环境                                                                 | Spark的应用程序支持使用Scala、Java、Python三种语言进行开发。推荐使用IDEA工具，请根据指导完成不同语言的开发环境配置。                                        | 请参考[准备Spark应用Java开发环境](https://support.huaweicloud.com/devg-mrs/mrs_06_0156.html)至[准备Spark应用Python开发环境](https://support.huaweicloud.com/devg-mrs/mrs_06_0158.html)章节 |
| 准备运行环境                                                                 | Spark的运行环境即Spark客户端，请根据指导完成客户端的安装和配置。                                                                         | [准备Spark应用运行环境](https://support.huaweicloud.com/devg-mrs/mrs_06_0163.html)                                                                                           |
| 获取并导入样例工程 或者新建工程 | Spark提供了不同场景下的样例程序，您可以导入样例工程进行程序学习。或者您可以根据指导，新建一个Spark工程。                                                     | [导入并配置Spark样例工程](https://support.huaweicloud.com/devg-mrs/mrs_06_0164.html)                                                                                          |
| 根据场景开发工程                                                               | 提供了Scala、Java、Python三种不同语言的样例工程，还提供了Streaming、SQL、JDBC客户端程序以及Spark on HBase四种不同场景的样例工程。帮助用户快速了解Spark各部件的编程接口。 | 请参考[场景说明](https://support.huaweicloud.com/devg-mrs/mrs_06_0169.html)至[Scala样例代码](https://support.huaweicloud.com/devg-mrs/mrs_06_0208.html)章节                        |
| 编译并运行程序                                                                | 指导用户将开发好的程序编译并提交运行。                                                                                           | [编包并运行Spark应用](https://support.huaweicloud.com/devg-mrs/mrs_06_0213.html)                                                                                            |
| 查看程序运行结果                                                               | 程序运行结果会写在用户指定的路径下。用户还可以通过UI查看应用运行情况。                                                                          | [查看Spark应用调测结果](https://support.huaweicloud.com/devg-mrs/mrs_06_0214.html)                                                                                           |
| 调优程序                                                                   | 您可以根据程序运行情况，对程序进行调优，使其性能满足业务场景诉求。 调优完成后，请重新进行编译和运行      | 请参考[数据序列化](https://support.huaweicloud.com/devg-mrs/mrs_06_0221.html)至[Spark CBO调优](https://support.huaweicloud.com/devg-mrs/mrs_06_0236.html)章节                     |
   
