导入并配置Spark样例工程
操作场景
Spark针对多个场景提供样例工程,包含Java样例工程和Scala样例工程等,帮助客户快速学习Spark工程。
针对Java和Scala不同语言的工程,其导入方式相同。使用Python开发的样例工程不需要导入,直接打开Python文件(*.py)即可。
以下操作步骤以导入Java样例代码为例。操作流程如图1所示。
前提条件
- 确保本地环境的时间与MRS集群的时间差要小于5分钟,若无法确定,请联系系统管理员。MRS集群的时间可通过FusionInsight Manager页面右下角查看。
- 已准备开发环境及MRS集群相关配置文件,详情请参考准备Spark连接集群配置文件。
操作步骤
- 参考获取MRS应用开发样例工程,获取样例代码解压目录中“spark-examples”目录下的“sparknormal-examples”文件夹中的Scala、Spark Streaming等多个样例工程。
- 若需要在本地Windows调测Spark样例代码,需参考准备Spark连接集群配置文件获取各样例项目所需的配置文件,并手动将配置文件导入到Spark样例工程的配置文件目录中。
- 安装IntelliJ IDEA和JDK工具后,需要在IntelliJ IDEA中配置JDK。
- 打开IntelliJ IDEA,选择“Configure”。 图2 Quick Start
- 在“Configure”下拉菜单中单击“Project Defaults”。 图3 Configure
- 在“Project Defaults”菜单中选择“Project Structure”。 图4 Project Defaults
- 在打开的“Project Structure”页面中,选择“SDKs”,单击加号添加JDK。 图5 添加JDK
- 在弹出的“Select Home Directory for JDK”窗口,选择对应的JDK目录,然后单击“OK”。 图6 选择JDK目录
- 完成JDK选择后,单击“OK”完成配置。 图7 完成JDK配置
- 打开IntelliJ IDEA,选择“Configure”。
- (可选)如果是Scala开发环境,还需要在IntelliJ IDEA中安装Scala插件。
- 在“Configure”下拉菜单中,单击“Plugins”。 图8 Plugins
- 在“Plugins”页面,选择“Install plugin from disk”。 图9 Install plugin from disk
- 在“Choose Plugin File”页面,选择对应版本的Scala插件包,单击“OK”。

- 在“Plugins”页面,单击“Apply”安装Scala插件。
- 在弹出的“Plugins Changed”页面,单击“Restart”,使配置生效。 图10 Plugins Changed
- 在“Configure”下拉菜单中,单击“Plugins”。
- 将Java样例工程导入到IDEA中。
- 打开IntelliJ IDEA。在“Quick Start”页面选择“Import Project”。 或者,针对已使用过的IDEA工具,您可以从IDEA主界面直接添加。选择导入工程。图11 Import Project(Quick Start页面)
- 选择需导入的样例工程存放路径及其pom文件,然后单击“OK”。 图12 Select File or Directory to Import
- 确认导入路径和名称,单击“Next”。 图13 Import Project from Maven
- 选择需要导入的工程,然后单击“Next”。
- 确认工程所用JDK,然后单击“Next”。 图14 Select project SDK
- 确认工程名称和路径,单击“Finish”完成导入。 图15 Confirm the project name and file location
- 导入完成后,IDEA主页显示导入的样例工程。 图16 已导入工程
- 打开IntelliJ IDEA。在“Quick Start”页面选择“Import Project”。
- (可选)如果导入Scala语言开发的样例程序,还需要为工程设置语言。
- 在IDEA主页,选择进入“Project Structure”页面。
- 选择“Modules”,选中工程名称,然后右键选择。 图17 选择Scala语言
- 当IDEA可以识别出Scala SDK时,在设置界面,选择编译的依赖jar包,然后单击“OK”应用设置。 图18 Add Scala Support
- 当系统无法识别出Scala SDK时,需要自行创建。
- 单击“Create...”。 图19 Create...
- 在“Select JAR's for the new Scala SDK”页面单击“Browse...”。 图20 Select JAR's for the new Scala SDK
- 在“Scala SDK files”页面选择scala sdk目录,单击“OK”。 图21 Scala SDK files
- 单击“Create...”。
- 设置成功,单击“OK”保存设置。 图22 设置成功
- 设置IDEA的文本文件编码格式,解决乱码显示问题。
- 在IDEA首页,选择。 图23 选择Settings
- 编码配置。
- 在“Settings”页面,展开“Editor”,选择“File Encodings”。
- 分别在右侧的“Global Encoding”和“Project Encoding”的下拉框中,选择“UTF-8”。
- 单击“Apply”应用配置。
- 单击“OK”完成编码配置。

- 在IDEA首页,选择。
样例代码路径说明
| 样例代码项目 | 样例名称 | 样例语言 |
|---|---|---|
| SparkJavaExample | Spark Core程序 | Java |
| SparkScalaExample | Spark Core程序 | Scala |
| SparkPythonExample | Spark Core程序 | Python |
| SparkSQLJavaExample | Spark SQL程序 | Java |
| SparkSQLScalaExample | Spark SQL程序 | Scala |
| SparkSQLPythonExample | Spark SQL程序 | Python |
| SparkThriftServerJavaExample | 通过JDBC访问Spark SQL的程序 | Java |
| SparkThriftServerScalaExample | 通过JDBC访问Spark SQL的程序 | Scala |
| SparkOnHbaseJavaExample-AvroSource | Spark on HBase 程序-操作Avro格式数据 | Java |
| SparkOnHbaseScalaExample-AvroSource | Spark on HBase 程序-操作Avro格式数据 | Scala |
| SparkOnHbasePythonExample-AvroSource | Spark on HBase 程序-操作Avro格式数据 | Python |
| SparkOnHbaseJavaExample-HbaseSource | Spark on HBase 程序-操作HBase数据源 | Java |
| SparkOnHbaseScalaExample-HbaseSource | Spark on HBase 程序-操作HBase数据源 | Scala |
| SparkOnHbasePythonExample-HbaseSource | Spark on HBase 程序-操作HBase数据源 | Python |
| SparkOnHbaseJavaExample-JavaHBaseBulkPutExample | Spark on HBase 程序-BulkPut接口使用 | Java |
| SparkOnHbaseScalaExample-HBaseBulkPutExample | Spark on HBase 程序-BulkPut接口使用 | Scala |
| SparkOnHbasePythonExample-HBaseBulkPutExample | Spark on HBase 程序-BulkPut接口使用 | Python |
| SparkOnHbaseJavaExample-JavaHBaseBulkGetExample | Spark on HBase 程序-BulkGet接口使用 | Java |
| SparkOnHbaseScalaExample-HBaseBulkGetExample | Spark on HBase 程序-BulkGet接口使用 | Scala |
| SparkOnHbasePythonExample-HBaseBulkGetExample | Spark on HBase 程序-BulkGet接口使用 | Python |
| SparkOnHbaseJavaExample-JavaHBaseBulkDeleteExample | Spark on HBase 程序-BulkDelete接口使用 | Java |
| SparkOnHbaseScalaExample-HBaseBulkDeleteExample | Spark on HBase 程序-BulkDelete接口使用 | Scala |
| SparkOnHbasePythonExample-HBaseBulkDeleteExample | Spark on HBase 程序-BulkDelete接口使用 | Python |
| SparkOnHbaseJavaExample-JavaHBaseBulkLoadExample | Spark on HBase 程序-BulkLoad接口使用 | Java |
| SparkOnHbaseScalaExample-HBaseBulkLoadExample | Spark on HBase 程序-BulkLoad接口使用 | Scala |
| SparkOnHbasePythonExample-HBaseBulkLoadExample | Spark on HBase 程序-BulkLoad接口使用 | Python |
| SparkOnHbaseJavaExample-JavaHBaseForEachPartitionExample | Spark on HBase 程序-foreachPartition接口使用 | Java |
| SparkOnHbaseScalaExample-HBaseForEachPartitionExample | Spark on HBase 程序-foreachPartition接口使用 | Scala |
| SparkOnHbasePythonExample-HBaseForEachPartitionExample | Spark on HBase 程序-foreachPartition接口使用 | Python |
| SparkOnHbaseJavaExample-JavaHBaseDistributedScanExample | Spark on HBase 程序-分布式Scan HBase表 | Java |
| SparkOnHbaseScalaExample-HBaseDistributedScanExample | Spark on HBase 程序-分布式Scan HBase表 | Scala |
| SparkOnHbasePythonExample-HBaseDistributedScanExample | Spark on HBase 程序-分布式Scan HBase表 | Python |
| SparkOnHbaseJavaExample-JavaHBaseMapPartitionExample | Spark on HBase 程序-mapPartitions接口使用 | Java |
| SparkOnHbaseScalaExample-HBaseMapPartitionExample | Spark on HBase 程序-mapPartitions接口使用 | Scala |
| SparkOnHbasePythonExample-HBaseMapPartitionExample | Spark on HBase 程序-mapPartitions接口使用 | Python |
| SparkOnHbaseJavaExample-JavaHBaseStreamingBulkPutExample | Spark on HBase 程序-SparkStreaming批量写入HBase表 | Java |
| SparkOnHbaseScalaExample-HBaseStreamingBulkPutExample | Spark on HBase 程序-SparkStreaming批量写入HBase表 | Scala |
| SparkOnHbasePythonExample-HBaseStreamingBulkPutExample | Spark on HBase 程序-SparkStreaming批量写入HBase表 | Python |
| SparkHbasetoHbaseJavaExample | 从HBase读取数据再写入HBase | Java |
| SparkHbasetoHbaseScalaExample | 从HBase读取数据再写入HBase | Scala |
| SparkHbasetoHbasePythonExample | 从HBase读取数据再写入HBase | Python |
| SparkHivetoHbaseJavaExample | 从Hive读取数据再写入HBase | Java |
| SparkHivetoHbaseScalaExample | 从Hive读取数据再写入HBase | Scala |
| SparkHivetoHbasePythonExample | 从Hive读取数据再写入HBase | Python |
| SparkStreamingKafka010JavaExample | Spark Streaming对接Kafka0-10程序 | Java |
| SparkStreamingKafka010ScalaExample | Spark Streaming对接Kafka0-10程序 | Scala |
| SparkStructuredStreamingJavaExample | Structured Streaming程序 | Java |
| SparkStructuredStreamingScalaExample | Structured Streaming程序 | Scala |
| SparkStructuredStreamingPythonExample | Structured Streaming程序 | Python |
| StructuredStreamingADScalaExample | Structured Streaming流流Join | Scala |
| StructuredStreamingStateScalaExample | Structured Streaming 状态操作 | Scala |
| SparkOnHudiJavaExample | 使用Spark执行Hudi基本操作 | Java |
| SparkOnHudiPythonExample | 使用Spark执行Hudi基本操作 | Python |
| SparkOnHudiScalaExample | 使用Spark执行Hudi基本操作 | Scala |
