Spark高速入门指南 – Spark安装与基础使用中介绍了Spark的安装与配置。在那里还介绍了使用spark-submit提交应用。只是不能使用vim来开发Spark应用。放着IDE的方便不用。这里介绍使用Intellij Idea搭建Spark的开发环境。

1、Intellij Idea的安装

因为Spark安装在Ubuntu环境中。这里的Idea也安装在Ubuntu中。首先是下载,到官网下载就可以。下载完后解压到待安装的文件夹:

sudo tar -zxvf ideaIU-2016.1.tar.gz -C /usr/local/

我解压在了/usr/local文件夹下,然后更改文件夹名:

mv ideaIU-2016.1 idea

然后改动文件的用户和用户组:

sudo chown -R hadoop:hadoop idea

这里的hadoop是我的username和组名。这样idea就成功安装了。

为了启动idea,进入idea/bin文件夹。运行里面的idea.sh:

bin/idea.sh

这样就能够启动idea。只是这样不方便。能够在桌面新建文件idea.desktop,输入例如以下内容:

[Desktop Entry]
Name=IdeaIU
Comment=Rayn-IDEA-IU
Exec=/usr/local/idea/bin/idea.sh
Icon=/usr/local/idea/bin/idea.png
Terminal=false
Type=Application
Categories=Developer;

这样就创建了一个桌面快捷方式。

2、maven的安装与配置

Maven 是一个项目管理和构建自己主动化工具。作为一个程序猿,都有过为了使用某个功能而在项目中加入jar包的经历,使用的框架多了。须要加入的jar包也多,而maven可以自己主动为我们加入须要的jar包。

首先在maven官网上下载maven:

下载之后在Downloads文件夹下有例如以下文件:

liu@Binja:~/Downloads$ ls
apache-maven-3.3.9-bin.tar.gz

解压到待安装的文件夹:

liu@Binja:~/Downloads$ sudo tar -zxvf apache-maven-3.3.9-bin.tar.gz -C /usr/local/

相同,改动目录名和username:

liu@Binja:/usr/local$ sudo mv apache-maven-3.3.9/ maven
liu@Binja:/usr/local$ sudo chown -R liu:liu maven
liu@Binja:/usr/local$ ll maven
total 52
drwxr-xr-x 6 liu liu 4096 3月 28 20:24 ./
drwxr-xr-x 12 root root 4096 3月 28 20:26 ../
drwxr-xr-x 2 liu liu 4096 3月 28 20:24 bin/
drwxr-xr-x 2 liu liu 4096 3月 28 20:24 boot/
drwxr-xr-x 3 liu liu 4096 11月 11 00:38 conf/
drwxr-xr-x 3 liu liu 4096 3月 28 20:24 lib/
-rw-r--r-- 1 liu liu 19335 11月 11 00:44 LICENSE
-rw-r--r-- 1 liu liu 182 11月 11 00:44 NOTICE
-rw-r--r-- 1 liu liu 2541 11月 11 00:38 README.txt
liu@Binja:/usr/local$

然后将maven加入到环境变量中:

sudo vim ~/.bashrc

在最后加入以下的内容:

export PATH=$PATH:/usr/local/maven/bin

使更改生效:

liu@Binja:/usr/local$ source ~/.bashrc

这样maven就安装好了。

3、用刚安装的maven配置idea

起始idea自带了maven,这里配置自己安装的maven。

一次选择File->Setting->Build,Execution,Deployment->Build Tools->Maven,例如以下图:

在右側里的Maven home directory里设置Maven的安装文件夹。就我这里是/usr/local/maven,在User settings file里设置Mavne的配置文件。我这里使用默认的文件。在Local repository里设置本地包的管理仓库,选择右側的Override后,能够自己定义自己的仓库文件夹,以后Maven自己主动下载的包就会存放在这里。

单击OK后maven就配置完了。

然后就能够创建一个maven项目。

4、创建maven项目

依次选择File->New->New Project。出现例如以下界面:

左側能够选择项目的类型,这里选择Maven。右側能够选择是否使用模板,勾选上面的Create from archetype后。就能够在以下选择项目模板,这里选择Scala的模板。

一路next之后。这里填一下groupID和artifactID。名字随便取:

然后一路next,填写上项目的名字,OK就能够了。

这样新项目就创建成功了,新项目的文件结构例如以下图:

当中的pom.xml就是配置我们项目的依赖包的。src是项目存放代码的文件夹,以下有两个结构同样的文件夹main和test,当中我们在main文件夹下编写代码,test编写測试代码。这里先不使用測试,能够将test文件夹删除。

右側展示的就是pom.xml文件的内容:

勾选右上角的Enable Auto-Import,这样Idea就会自己主动下载项目所需的依赖包。还要注意中间的Scala版本号,选择自己使用的版本号。

在下图中的dependencies标签下能够加入项目的依赖:

每个依赖都在一个dependency标签下,当中包含groupID、artifactID和version。假设不知道依赖包的这些内容的话,能够在这里进行查询,查询结果就有这些信息。比方要查询spark的依赖,有例如以下的结果:

选择要加入的依赖。进入后选择对应的版本,以下就有maven须要的一些信息,同一时候还包含其他包管理工具的信息,比方sbt:

就能够拷贝到pom.xml文件里了。

maven会自己主动下载pom.xml中加入的依赖包。不用我们自己加入,省去了非常多麻烦。

之后就能够写代码了,在src/main/scala/com/liu下新建Scala类,选择类型为Object,填写类名。就能够编写代码了。作为演示样例。这里是一个wordcount的样例:

package com.liu

/**
* Created by hadoop on 16-3-28.
*/
import org.apache.spark.{SparkContext,SparkConf}
object Test {
def main(args:Array[String]): Unit ={
val conf=new SparkConf()
val sc=new SparkContext(conf)
val text=sc.textFile("file:///usr/local/spark/README.md")
val result=text.flatMap(_.split(' ')).map((_,1)).reduceByKey(_+_).collect()
result.foreach(println)
}
}

这里不介绍代码的详细含义。

代码写好后,须要生成jar包并提交到spark上执行。

以下的步骤来生成jar包。依次选择File->Project Structure->Artifacts。例如以下图:

单击中间的绿色加号。选择JAR->from modules with dependencies。例如以下图:

在Main Class中选择项目的主要类,OK就可以。结果例如以下:

中间的Output Layout会列出全部的依赖包,我们要提交到Spark上,所以不须要这里的Spark和Hadoop依赖包,删除来节约空间。只是不要删除最后的compile output,要不然就生不成jar包了。点击OK完毕配置。

之后选择Build->Build Artifact->Build,就能够生成jar包了,结果例如以下图:

上图中多了一个out目录。以下有一个jar包。表明生成成功。

5、提交Spark应用

生成了jar包后就能够使用spark-submit来提交应用了,使用例如以下命令:

spark-submit --class "com.liu.Test" ~/SparkDemo.jar

就能够提交应用。结果例如以下:

表明执行成功。列出了单词的计数统计。

至此,Spark的Idea开发环境搭建成功。

Intellij Idea搭建Spark开发环境的更多相关文章

  1. Spark(八) -- 使用Intellij Idea搭建Spark开发环境

    Intellij Idea下载地址: 官方下载 选择右下角的Community Edition版本下载安装即可 本文中使用的是windows系统 环境为: jdk1.6.0_45 scala2.10. ...

  2. spark学习10(win下利用Intellij IDEA搭建spark开发环境)

    第一步:启动IntelliJ IDEA,选择Create New Project,然后选择Scala,点击下一步,输入项目名称wujiadong.spark继续下一步 第二步:导入spark-asse ...

  3. Intellij IDEA使用Maven搭建spark开发环境(scala)

    如何一步一步地在Intellij IDEA使用Maven搭建spark开发环境,并基于scala编写简单的spark中wordcount实例. 1.准备工作 首先需要在你电脑上安装jdk和scala以 ...

  4. 使用Intellij IDEA构建spark开发环境

    近期开始研究学习spark,开发环境有多种,由于习惯使用STS的maven项目,但是按照许多资料的方法尝试以后并没有成功,也可能是我环境问题:也可以是用scala中自带的eclipse,但是不太习惯, ...

  5. PyCharm搭建Spark开发环境 + 第一个pyspark程序

    一, PyCharm搭建Spark开发环境 Windows7, Java 1.8.0_74, Scala 2.12.6, Spark 2.2.1, Hadoop 2.7.6 通常情况下,Spark开发 ...

  6. IntelliJ IDEA 搭建 Go 开发环境

    本文介绍 Windows7 x64 基于 IntelliJ IDEA 搭建 Go 语言开发环境.主要是一些操作过程截图以及简单文字描述,如有不清楚的地方​,欢迎指正.所有软件使用当前(2016.12. ...

  7. 大数据学习(25)—— 用IDEA搭建Spark开发环境

    IDEA是一个优秀的Java IDE工具,它同样支持其他语言.Spark是用Scala语言编写的,用Scala开发Spark是最舒畅的.当然,Spark也提供Java和Python的API. Java ...

  8. 服务器上搭建spark开发环境

    1.安装相应的软件 (1)安装jdk 下载地址:http://www.Oracle.com/technetwork/java/javase/downloads/index.html (2)安装scal ...

  9. Spark开发环境搭建和作业提交

    Spark高可用集群搭建 在所有节点上下载或上传spark文件,解压缩安装,建立软连接 配置所有节点spark安装目录下的spark-evn.sh文件 配置slaves 配置spark-default ...

随机推荐

  1. 安装ganglia过程中出现错误 perl(RRDp) is needed by rrdtool-1.2.30-1.el5.rf.x86_64

    用rpm -ivh *.rpm安装ganglia的rpm包,然后出现下面的错误: warning: rrdtool-1.2.30-1.el5.rf.x86_64.rpm: Header V3 DSA/ ...

  2. django -- 为model 指定数据库名

    一.为model指定数据库名: django自己实现的ORM中.如果要指定一个model的表名是通过Meta类来实现的. from django.db import models # Create y ...

  3. Intel CPU命名规则

    intel的几代CPU中,后缀字母主要有以下几种:M:笔记本专用CPU,一般为双核,M前面一位数字是0,意味着是标准电压处理器,如果是7,则是低电压处理器.U:笔记本专用低电压CPU,一般为双核,U前 ...

  4. PHP断点调试工具Xdebug的安装

    Xdebug是一个PHP程序调试器,可以用来跟踪,调试和分析PHP程序的运行状况.其实调试PHP还有其他工具比如Zend Debugger,但zend官方不是免费发布的,后来更新为zend Serve ...

  5. Android 开发日常积累

    Android 集合 Android 开源项目分类汇总 扔物线的 HenCoder 高级 Android 教程 hencoder HenCoder:给高级 Android 工程师的进阶手册 Andro ...

  6. iOS7.0中UILabel高度调整注意事项

    转自:http://blog.csdn.net/k12104/article/details/33731833 http://herkuang.info/blog/2013/12/31/ios7%E4 ...

  7. nginx upstream 常用的几种调度方式

    nginx可以根据客户IP进行负载均衡,在upstream里设置ip_hash,以可以对同一个C类地址段的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个.C类地址:C类地址第1字节.第2 ...

  8. mongoose修改数组中某个特定的值

    写博客的时候有一个这样的业务,一个标签集合和一个文章集合,它们是多对多的关系,文章集合中tags字段包含它对应的标签,现在修改标签集合中某条标签记录的名字,文章集合中所有包含这个标签的tags字段的值 ...

  9. ES6,新增数据结构Set的用法

    ES6 提供了新的数据结构 Set. 特性 似于数组,但它的一大特性就是所有元素都是唯一的,没有重复. 我们可以利用这一唯一特性进行数组的去重工作. 单一数组的去重. let set6 = new S ...

  10. 使用JPush(极光推送)实现远程通知

    使用JPush(极光推送)实现远程通知 远程推送是APP 必备的功能, 现在第三方的 SDK 已经做的非常完备了, 在 iOS10.0出来之后, 极光推送也及时更新了他的 SDK, 今天小试了一下效果 ...