Scala的IDE有两大阵营,ScalaIDE(Eclipse)和IntelliJ-idea,我之前基本上都是把Spark的开发环境搭建在ScalaIDE上,但是它的编译确实太慢,不得已我迁移到了IntelliJ上,下面,我以图解的方式说明在IntelliJ上搭建Spark和Spark SQL开发环境的主要步骤。
0. 假设IntelliJ-Idea for Scala和Spark最新的源代码都已经准备好了
1. 生成IntelliJ的工程文件(必须)
sbt/sbt -Phive -Phive-0.13.1 -Phadoop-2.3 gen-idea
。。漫长的等待和重试,(有高速vpn翻墙经验的偷笑吧)
2. 打开IntelliJ,导入Spark工程(必须)
3. 打开Project Structure,设置相关模块(必须)
4. 删除不需要的模块(可选)
(Scala代码的编译时间一般比较长,不常用的模块就直接删除吧,不会真正从磁盘删除源代码,只是工程文件而已)
5. 替换”CORE“模块中的mesos jar(必须)
6. 把“CORE”模块中的"resources"文件夹真正标示为“Resource”(必须)
否则会说Jetty启动失败,一堆ui/static下的文件找不到
7. 修改文件IntelliJ中class文件的输出路径(可选)
通常我都会修改“Output Path”,将其设置到ramdisk中,原因有二:1).避免和sbt输出的文件路径相同,会导致在sbt和ide切换执行单元测试时编译时间过长;2).ramdisk毕竟能减少磁盘的读写,能省一点就省一点吧。
上图只修改了“CORE”模块,对应其它模块和“Test Output Path”的路径也一并修改
8.把conf文件夹作为“resource”放到hive模块中(可选)
通常,我把hive-site.xml文件也会放到conf下,把常用配置设置好。
9.打开SparkSQLCLIDriver.scala,配置执行环境(可选)
10.执行,测试!(可选)
以上就是我配置开发环境的完整过程,可能有些细节没有完全说到位,大家多尝试一下!