
# Spark应用开发流程介绍
#### Spark应用程序开发流程
Spark包含Spark Core、Spark SQL和Spark Streaming三个组件，其应用开发流程都是相同的。
开发流程中各阶段的说明如[图1]和[表1]所示。
图1Spark应用程序开发流程   
![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001299091805.png)
 表1Spark应用开发的流程说明 
| **阶段**    | **说明**                                                                                                                                                            | **参考文档**                                                                                                                                                                                                                |
|:---|:---|:---|
| 了解基本概念    | 在开始开发应用前，需要了解Spark的基本概念，根据实际场景选择需要了解的概念，分为Spark Core基本概念、Spark SQL基本概念和Spark Streaming基本概念。                                                                       | [基本概念](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200002.html#mrs_07_200002__s493355a85bba43cfb680528f7a88df1e)                                                                                                |
| 准备开发和运行环境 | Spark的应用程序支持使用Scala、Java、Python三种语言进行开发。推荐使用IDEA工具，请根据指导完成不同语言的开发环境配置。Spark的运行环境即Spark客户端，请根据指导完成客户端的安装和配置。                                                       | [准备Spark本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200006.html)                                                                                                                                      |
| 准备开发用户    | 开发用户用于运行样例工程。用户需要有HDFS、YARN、Kafka和Hive权限，才能运行Spark样例工程。                                                                                                           | [准备MRS应用开发用户](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_020002.html)                                                                                                                                          |
| 准备工程      | Spark提供了不同场景下的样例程序，您可以导入样例工程进行程序学习。或者您可以根据指导，新建一个Spark工程。                                                                                                         | [导入并配置Spark样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200007.html) [新建Spark样例工程（可选）](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200008.html) |
| 准备安全认证    | 如果您使用的是安全集群，需要进行安全认证。                                                                                                                                             | [配置Spark应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200012.html)                                                                                                                                        |
| 根据场景开发工程  | 提供了Scala、Java、Python三种不同语言的样例工程，还提供了Streaming、SQL、JDBC客户端程序以及Spark on HBase四种不同场景的样例工程。 帮助用户快速了解Spark各部件的编程接口。 | [开发Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200013.html)                                                                                                                                            |
| 编译并运行程序   | 指导用户将开发好的程序编译并提交运行。                                                                                                                                               | [调测Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200129.html)                                                                                                                                            |
| 查看程序运行结果  | 程序运行结果会写在用户指定的路径下。用户还可以通过UI查看应用运行情况。                                                                                                                              | [调测Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200129.html)                                                                                                                                            |
| 调优程序      | 您可以根据程序运行情况，对程序进行调优，使其性能满足业务场景诉求。 调优完成后，请重新进行编译和运行。                                                            | [Spark2x性能调优](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1974.html)                                                                                                                                          |
   
