本小结主要记录win10下基于scala的spark开发环境搭建,主要有Intellij中sacla插件导入和maven的使用
> 参见scala官方文档:https://docs.scala-lang.org/getting-started-intellij-track/getting-started-with-scala-in-intellij.html
### 一、开发环境
#### 前置配置
- (一)JDK8+和设置JAVA_HOME环境变量
- (二)maven和添加MAVEN_HOME/bin到PATH
#### 基本步骤
- (一)Intellij Community安装
> 该版免费
- (二)scala安装
- (三)IDEA中scala语言及scalaSDK安装
### 二、开发模式
#### 基本步骤
- (一)新建maven项目,设置Allow Auto Import
> 通过scala子项目创建
> 导入MAVEN_HOME目录的本地maven仓库目录
> 初学,可先清空test/scala,否则编译时可能会有很多依赖错误(暂未调好)
- (二)在pom.xml中导入相应依赖
> 参见:https://github.com/pontsh/ImoocSparkSQLProject/blob/master/pom.xml
> 依赖包的maven语法参见:https://mvnrepository.com/
> Tips:因为第一次导入时本地库没有,所以可能较慢。导入进度可以在Intellij右下方进度条看到,已导入的包可以在External Libraries中找到。
- (三)通过SparkSession实例化spark资源,进行开发
> 参见:https://github.com/pontsh/ImoocSparkSQLProject/tree/master/src/main/scala/com/imooc/spark
> 注意:SparkSession实例化名最好为spark,因为要打包放到服务器环境——启动spark后SparkSession资源默认名为spark
> 注意:最后要spark.stop()关闭资源
> Tips:传入main方法的args参数可以在IDEA Configuration中指定,如文件路径。通过内置环境每次运行要申请资源,较慢。
> Tips:官网:“The entry point into all functionality in Spark is the SparkSession class”。而事实上,entry point还有SQLContext(1.6.1)、HiveContext(1.6.1),它们的实例化都需要注入SparkContext
- (四)到项目目录下执行mvn clean packages -DskipTests命令打包
> jar包生成在项目目录的target下
> 注意:打包前注释SparkSession资源的申请,因为该语句用于本次IDEA的spark插件内置环境测试
> Tips:第一次用mvn package较慢,因为要下载plugin,过程中可能需要用户输入回车(未知为什么)
- (五)项目jar包上传服务器,运行spark-submit命令(同时带入配置)运行
> Tips:通常将spark-submit命令写作脚本。参见http://spark.apache.org/docs/latest/submitting-applications.html