导入并配置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 Directoty 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 |