一:Linux上IntelliJ IDEA安装
1:下载IntelliJ IDEA.JetBrains共提供了两个版本:社区版(免费开源)和终极版(专非有免费),下载后将压缩文件移至用户主目录下,在此事例中即master节点的/home/mark/
执行下述命令对ideaIC-2018.1.tar.gz进行压缩,得到文件夹idea-IC-201814,为方便操作将其重命名为idea1814
$ tar -zvxf ideaIC-2018.1.tar.gz
$ mv idea-IC-201814 idea1814
2:配置IntelliJ IDEA
通过下述命令进入idea1814目录,打开IntelliJ IDEA
$ cd idea1814
bin/idea.sh
如果先前已安装IntelliJ IDEA,并希望保留其配置,那么可以选择第一个选项,并指定版本的配置文件夹;若是初次安装,则需要选择第二个选项。
用户可以设定IntelliJ IDEA的主题风格
下图要求用户选择是否将IntelliJ IDEA与系统应用程序菜单集成。若不勾选该选项,则用户需要手动执行idea.sh脚本开启IntelliJ IDEA。
下图,用户可以选择所需的工具,包括构建工具、版本控制工具以及许多其他工具。
3:安装Scala插件
下载scala-intellij-bin-2018.1.8.zip,并将其移至用户主目录下
mv scala-intellij-bin-2018.1.8.zip /home/mark
在下图所示窗口中单击“Configure”下拉菜单中的“Plugins”选项。
在弹出的窗口中选择从本地磁盘安装导入安装Scala插件
找到scala-intellij-bin,所在目录,单击导入,如下图,
重新启动IntelliJ IDEA,如下图
至此,Linux上的IntelliJ IDEA的搭建安装完成
二:创建Spark应用程序
如果是初次安装IntelliJ IDEA,在弹出界面中点击“Create a New Project”直接进入Project创建过程,如下图所示
如果先前已安装IntelliJ IDEA,也可以在File菜单下单击“New”->"New Project"命令,进入Project创建过程
1:创建Project
如果是初次安装IntelliJ IDEA,在弹出界面中点击“Create a New Project”直接进入Project创建过程
如果先前已经安装IntelliJ IDEA,也可在File菜单下单击“New”->"New Project"命令进入Project创建过程
2:选择“IDEA”
3:设置相关Project名称、相关目录与版本信息。其中Project SDK需要通过“New...”设置为JDK的路径;Scala SDK需要通过“Create...”设置为Scala的路径
4:创建Project的目录结构
单击“File”->"Project Structure..."
在弹出的窗口中单击“Modules”命令,在对应的右侧窗口中,选中“src”文件夹并单击右键,选择“New Folder...”命令,创建“main”文件夹,如下图。同样的步骤,再选中“main”,在其中分别创建“java”、“resources”、"scala"文件夹,然后通过“Mark as”设置文件夹属性,目录结构如下图。
5:添加Spark依赖包
虽然已经在IntelliJ IDEA中创建了Project,但是Project还不能识别Spark类,因此需要将Spark相应的依赖包添加进其中。首先单击“File”->"Project Structure..."在打开的窗口中点击“Libraries”命令,再单击“+”,在菜单中选择“java”,如下图。找到安装Spark集群时解压出来的“spark-1.4.0-bin-hadoop2.4”文件夹,并将其lib目录下相应的jar包导入,如下图。
6:创建Scala Object
在左侧的Project目录结构中选中创建的包“mark.spark”,单击右键选择“New”->"Scala Class","Kind"表示类型,选择“Object”
三:Spark应用程序部署
下面对HDFS上file.txt文件中的字母“a”进行统计个数
import org.apache.spark.{SparkConf, SparkContext}
object SimpleApp {
def main(args:Array[String]): Unit = {
val logFile="hdfs://master:9000/work/file.txt"
val conf = new SparkConf().setAppName("Simple Application").setMaster("local[2]")
val sc=new SparkContext(conf)
val logData=sc.textFile(logFile,2).cache()
val num=logData.flatMap(x=>x.split(" ")).filter(_.contains("a")).count()
println("Words with a : %s".format(num))
sc.stop()
}
}
setMaster()用于设置应用程序的运行方式,在该示例中setMaster()设置为“local[2]”,表示应用程序将以本地模式运行,并使用两个核心。
在窗口的空白处单击右键,选择“Run 'SimpleApp'”