
# 在本地Windows环境中调测Spark应用
在程序代码完成开发后，您可以在Windows环境中运行应用。使用Scala或Java语言开发的应用程序在IDEA端的运行步骤是一样的。
![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
- Windows环境中目前只提供通过JDBC访问Spark SQL的程序样例代码的运行，其他样例代码暂不提供。
- 用户需保证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. 获取样例代码。 
   下载样例工程的Maven工程源码和配置文件，请参见[获取MRS应用开发样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010002.html)。
   将样例代码导入IDEA中。
   
   

2. 获取配置文件。 
   从集群的客户端中获取文件。在"$SPARK_HOME/conf"中下载hive-site.xml与spark-defaults.conf文件到本地。
   
   
3. 在HDFS中上传数据。 
   1. 在Linux中新建文本文件data，将如下数据内容保存到data文件中。
      ```
      Miranda,32 
      Karlie,23 
      Candice,27
      ```
      
   
   2. 在Linux系统HDFS客户端使用命令**hadoop fs -mkdir /data**（hdfs dfs命令有同样的作用），创建对应目录。
   
   3. 在Linux系统HDFS客户端使用命令**hadoop fs -put** **data** **/data**，上传数据文件。
   
   
   
   
4. 在样例代码中配置相关参数。 
   将加载数据的sql语句改为"LOAD DATA INPATH 'hdfs:/data/data' INTO TABLE CHILD"。
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001299052693.png "点击放大")
   
   
5. 在程序运行时添加运行参数，分别为hive-site.xml与spark-defaults.conf文件的路径。 
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001252692470.png "点击放大")
   
   
6. 运行程序。
 
#### 查看调试结果
```
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/mavenlocal/org/apache/logging/log4j/log4j-slf4j-impl/2.6.2/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/mavenlocal/org/slf4j/slf4j-log4j12/1.7.30/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
---- Begin executing sql: CREATE TABLE IF NOT EXISTS CHILD (NAME STRING, AGE INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ----
Result
---- Done executing sql: CREATE TABLE IF NOT EXISTS CHILD (NAME STRING, AGE INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ----
---- Begin executing sql: LOAD DATA INPATH 'hdfs:/data/data' INTO TABLE CHILD ----
Result
---- Done executing sql: LOAD DATA INPATH 'hdfs:/data/data' INTO TABLE CHILD ----
---- Begin executing sql: SELECT * FROM child ----
NAMEAGE
Miranda32
Karlie23
Candice27
---- Done executing sql: SELECT * FROM child ----
---- Begin executing sql: DROP TABLE child ----
Result
---- Done executing sql: DROP TABLE child ----
Process finished with exit code 0
```
