Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

1. Intellij IDEA 开发环境搭建

最近在学习scala,除需要编写scala程序外,同时还需要创建maven工程,打成Jar包,而Eclipse在这方面显得使用的不是那么方面,同时由于Intellij IDEA提供了非常智能的提示功能,所以选择IDEA作为开发环境。Intellij IDEA现在也提供社区版本供开发者免费使用,所以许多原来的Eclipse用户也逐渐的转向IDEA,一方面可以智能的提示和快捷键可以提高开发效率,另一方面其整洁的界面设计和丰富的插件集成功能,方便了程序的集成开发和使用。这里是官网下载地址https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows&code=IIC,为了开发方便可以下载Windows版本直接安装。

安装的过程可以一路next到底,不要管太多插件上的问题,直到创建工程时再开始设置就行了。下面是一些常用的设置:

  1. 首次新建JAVA工程时要指定JDK所在目录Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行
  2. 设置字体大小和间距:Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行
  3. 控制台的字体大小和间距:Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行
  4. 显示行号:Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行
  5. 在【View】下显示ToolBar和Tool Buttons,【setting】Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行就在ToolBar中:Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行
  6. 无法修改时,先save as,这是Intellij的设计理念

 

另外,除了可以使用免费的社区版,现在也有**的Ultimate企业版,其功能相对于Community要强大,所以可以使用以下方式进行**。

IDEA相比较其他编译器很好用,但是企业版需要**(在校学生可以免费申请),启动时会弹出**页面,下面有两种方法可以**,自己偏爱第二种,第一种偶尔会失效……

1. 到网站 http://idea.lanyus.com/ 获取***。

2.填入下面的license server:

  http://intellij.mandroid.cn/
  http://idea.imsxm.com/
  http://idea.iteblog.com/key.php


/***********************update 2017/12/14*************************/

突然发现三个**服务器都不能用了,不知道是哪位大神自己搭建的服务器http://idea.java.sx/,可用

/***********************update 2018/1/15*************************/

选择第二种复制下面这段代码到文本框中(可用)

  1. C0FHYYCJ22-eyJsaWNlbnNlSWQiOiJDMEZIWVlDSjIyIiwibGljZW5zZWVOYW1lIjoid2VpIGh1YW5nIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJmYWxsYmFja0RhdGUiOiIyMDE3LTAyLTI2IiwicGFpZFVwVG8iOiIyMDE4LTAyLTI1In1dLCJoYXNoIjoiNTA2NDQ3MS8wIiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9-pujnwQxf3C8yHf0amTTAId+Oj1LzpvTsn71x0pvgjvXtx7MWs0AAbAX2L5frRvM/0AzmF7aQuayU5EEcew+J5j0O6RsCxMUilbeeQuCBDZK1bm9NKlAYf90RSKqQ9ViMyjsBVTHoABM0XHNi++XASeBB9g1OUZdzseLZ6pit0G0BPmunKIuX7bqjWewl0okbNIl+bW2y3eD4un9jDODbjMmdlB6T42s6mQ/lDkjD65C5OY1nY2fsVyd4sa4i0iCYwNvzFlDVG/AzziLYNDAdjipE+lN5McMXMfPZuGKkvTJMJk56l5t+jPjdjPRDId+lLqa0GU3zaNP251mm8vmOew==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG++2+wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog==  
Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

2.scala配置

Intellij IDEA默认配置里面没有Scala插件,需要手动安装,在Intellij IDEA 首次运行时选择configure plugins,选择默认后在软件主界面去配置,但是测试发现,这种设置方式经常会因为网络问题配置失败,建议直接到 https://plugins.jetbrains.com/plugin/1347-scala这个链接去下载,下载完成后,解压到Intellij IDEA 安装目录中的plugins里面去,然后启动Intellij IDEA 。然后就可以创建爱你Scala开发环境的创建:

1 File->New Project 

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

选择scala->IDEA,填写项目名,选择项目保存的路径和JDK及Scala SDK版本,然后下一步:得到下列界面:

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

点击Finish,然后点击File-->Project Structure,出现如下图所示,选择安装的jdk目录,及所建立工程文件的路径

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

在Project->Project SDK的右侧,点击new,得到: 

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

选择JDK,在弹出框中选择JDK的安装目录 

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

在Libraries右侧点击绿色的“+”号,选择Scala SDK,出现下图所示的选择scala版本的选项:

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

在上一步骤中,可以选择Intellij IDEA中自带的Scala,也可以使用自己安装好的Scala,点击上图中的”Browse”,然后选择Scala的安装目录,配置好之后,直接finish,得到下列工程目录 

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

点击File->Project Structure->Modules, 

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

在src目录上,右键然后点击new fold 命名为main,再右鍵main,同样new fold,命名为scala,并设置为sources,如下图,注意,src、main均不要设置sources,否则后面编译helloworld会报错 XX is already defined as object xx 

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

整体的工程文件已经创建好了,如下图: 在scala源文件目录上,直接右鍵,new->scala class ,选择Object,然后输入名称:HelloWorld 

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

输入的代码如下:

1 object HelloWorld  {
2   def main(args: Array[String]) {
3     println("Hello World")
4   }
5 }

点击HelloWorld.scala文件,右键或直接ctr+shift+F10运行程序

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

 

3.程序打包

File->Project Structure

 Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行


Next step:

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

选择主类:(点击省略号会自动出现要使用的主类)

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

 

Next step:

点击应用、OK

 Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

 

Next step:

 Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

 

 

Next step:

 Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

Next step:

本地打好的包:


程序运行过程出现的异常及解决方式


编写完scala程序,在运行时出现Error:scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException类型的异常。

折腾一两个小时,最后发现安装了多个版本的Scala SDK,前后设置的版本不一致。另外,也要注意scala2.1以上的版本尽量使用JDK1.8。还有,如果要在spark集群环境下运行scala程序是,要注意使用的scala版本和spark的版本的兼容性问题,从Spark2.0版开始,Spark默认使用Scala 2.11构建,Scala 2.10用户应该下载Spark源码包,并用Scala 2.10支持构建 。


Jar包在Spark中运行

将jar包通过XShell上传到服务器的摸个目录下,我这里将HelloScala的jar包放在/home/hadoop/myProject/myJar/目录下,进入spark的安装目录,启动spark(./start-all.sh),并通过如下的名利运行jar包:

/usr/local/spark/bin/spark-submit --class "HelloScala" /home/hadoop/myProject/myJar/HelloScala.jar 

Local模式运行spark应用程序,通过spark-submit提交应用程序,该命令的格式如下:
/usr/local/spark/bin/spark-submit       //提交Spark任务的入口,其中/usr/local/spark为spark的安装目录,spark-submit为提交Spark 任务的脚本
  --class <main-class>     //需要运行的程序的主类,应用程序的入口点
  --master <master-url>    //Master URL,下面会有具体解释
  --deploy-mode <deploy-mode>      //部署模式
  ... # other options  //其他参数
  <application-jar>  //应用程序JAR包
  [application-arguments] //传递给主类的主方法的参数
deploy-mode这个参数用来指定应用程序的部署模式,部署模式有两种:client和cluster,默认是client。当采用client部署模式时,就是直接在本地运行Driver Program,当采用cluster模式时,会在Worker节点上运行Driver Program。比较常用的部署策略是从网关机器提交你的应用程序,这个网关机器和你的Worker集群进行协作。在这种设置下,比较适合采用client模式,在client模式下,Driver直接在spark-submit进程中启动,这个进程直接作为集群的客户端,应用程序的输入和输出都和控制台相连接。因此,这种模式特别适合涉及REPL的应用程序。另一种选择是,如果你的应用程序从一个和Worker机器相距很远的机器上提交,那么采用cluster模式会更加合适,它可以减少Driver和Executor之间的网络迟延。

Intellij IDEA常用快捷键

快捷鍵 用法描述
Ctrl+Shift+A 根据名称查找操作,例如查找创建scala class操作
Alt+F1 视图切换
Ctrl+Tab 工具窗口、正在编辑的代码文件切换
Alt+Home 显示导航条
Ctrl+J 插入代码模板,例如main方法
Ctrl+Alt+J 将选中的代码用代码模板包裹
F4 打开工程配置窗口
Ctrl+Slash 注释代码 //
Ctrl+Shift+Slash 注释代码 /**/
Ctrl+N/Ctrl+Shift+N 输入名称查询类或文件
Ctrl+D 复制选中的代码
Ctrl+W / Ctrl+Shift+W 智能地进行代码选择
Ctrl+F 在当前文件中进行文本内容查找
Shift+Shift search everywhere
Ctrl+Shift+F7 高亮显示先中的方法或符号在当前文件中的使用情况
Ctrl+Space 代码自动提示
Ctrl+Shift+Enter 语句自动完成
Alt+enter 代码自动修正


参考:

         http://www.mamicode.com/info-detail-1192175.html

 http://blog.csdn.net/baolibin528/article/details/50315863   

 http://blog.csdn.net/qq_38663729/article/details/78757039

scala配置intellij IDEA15.0.3环境及hello world!