导入并配置Spark样例工程
操作场景
Spark针对多个场景提供样例工程,包含Java样例工程和Scala样例工程等,帮助客户快速学习Spark工程。
针对Java和Scala不同语言的工程,其导入方式相同。使用Python开发的样例工程不需要导入,直接打开Python文件(*.py)即可。
以下操作步骤以导入Java样例代码为例。操作流程如图1所示。
操作步骤
- 参考获取MRS应用开发样例工程,获取样例代码解压目录中“spark-examples”目录下的“sparksecurity-examples”文件夹中的Scala、Spark Streaming等多个样例工程。
 - 安装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  | 
     
| 
        SparkOnMultiHbaseScalaExample  | 
      
        Spark同时访问两个HBase  | 
      
        Scala  | 
     
| 
        SparkRExample  | 
      
        安装SparkR  | 
      
        R  | 
     
| 
        SparkOnHudiJavaExample  | 
      
        使用Spark执行Hudi基本操作  | 
      
        Java  | 
     
| 
        SparkOnHudiPythonExample  | 
      
        使用Spark执行Hudi基本操作  | 
      
        Python  | 
     
| 
        SparkOnHudiScalaExample  | 
      
        使用Spark执行Hudi基本操作  | 
      
        Scala  | 
     
    
      