《Spark核心技术与高级应用》——3.2节构建Spark的开发环境
本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第3章,第3.2节构建Spark的开发环境,作者于俊 向海 代其锋 马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看
3.2 构建Spark的开发环境
无论Windows或Linux操作系统,构建Spark开发环境的思路一致,基于Eclipse或Idea,通过Java、Scala或Python语言进行开发。安装之前需要提前准备好JDK、Scala或Python环境,然后在Eclipse中下载安装Scala或Python插件。
3.2.1 准备环境
准备环境包括JDK、Scala和Python的安装。
1.安装JDK
(1)下载JDK(1.7以上版本)
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html。
(2)配置环境变量(以Windows为例)
新增JAVA_HOME变量,值:C:Program FilesJavajdk1.7.0_71。
新增CLASSPATH变量,值:.;%JAVA_HOME%lib。
增加PATH变量,补充;%JAVA_HOME%bin。
进入cmd界面测试JDK是否安装成功。
C:\Users\admin>java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
2.安装Scala
下载Scala(2.10以上版本),下载地址:http://www.scala-lang.org/download/。
安装完毕配置环境变量,增加PATH变量,补充C:Program Files (x86)scalabin;。
进入cmd界面测试Scala是否安装成功。
C:\Users\admin>scala
Welcome to Scala version 2.10.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_7
Type :help for more information.
3.安装Python
下载Python,下载地址:https://www.python.org/downloads/。
安装完毕配置环境变量,增加PATH变量,补充C:Python33;。
进入cmd界面测试Python是否安装成功。
C:\Users\admin>python
Python 3.3.5 (v3.3.5:62cf4e77f785, Mar 9 2014, 10:37:12) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
3.2.2 构建Spark的Eclipse开发环境
使用Eclipse进行Spark开发,需要安装Scala和Python插件,安装步骤如下:
1)安装Eclipse,在官网下载Eclipse,解压缩到本地后直接使用即可。
2)安装Scala插件,打开Eclipse,依次选择“Help”→“Install New Software…”,在选项里填入http://download.scala-ide.org/sdk/e38/scala210/stable/site/,并按回车键,如图3-1所示,选择Scala IDE for Eclipse和Scala IDE for Eclipse development support,完成Scala插件在Eclipse上的安装。
3)安装Python插件,与安装Scala插件一样,打开Eclipse,利用Eclipse Update Manager安装PyDev。在Eclipse菜单栏中找到Help栏,选择“Help”→“Install New Software”命令,在弹出的Install界面中点击“Add”按钮,会弹出“Add Repository”界面,在名称项输入PyDev;在链接里输入地址,如https://dl.bintray.com/fabioz/pydev/all/,然后点击“OK”按钮。接下来,Eclipse的Update Manager将会在刚才输入的站点中搜索安装包,选中搜索出的结果PyDev,并点击“Next”按钮,等待一段时间,PyDev会安装成功。
安装完毕PyDev之后,配置Python/Jython解释器,在Eclipse菜单栏中,选择“Window”→
“Preferences”→“Pydev”→“Interpreter - (Python/Jython)”命令。
重启Eclipse使安装生效。
3.2.3 构建Spark的IntelliJ IDEA开发环境
除了使用Eclipse进行Spark程序开发之外,Spark支持的另外一种开发工具是IntelliJ IDEA;下载地址:http://www.jetbrains.com/idea/。
官方提供了Ultimate版和Community版可供选择,主要区别如下:
1)Ultimate版功能齐全的IDE,支持Web和Enterprise,免费试用30天,由官方提供一个专有的开发工具集和架构支持。
2)Community版支持Java、Groovy、Scala、Android的开发,免费并且开源,由社区进行支持。
作者使用的版本是ideaIC-14.1.4,请选择适合的操作系统进行安装。
如何安装IntelliJ IDEA?
Windows :直接运行.exe文件,按照向导步骤操作即可。
Mac OS X:打开.dmg包,并复制IntelliJ IDEA到应用文件夹。
Linux:解压.tar.gz压缩包,并运行bin/idea.sh(需要在环境变量PATH中加入IDEA目录,并执行source命令使配置文件生效)。
根据实际需求,我们选择Windows系统的Community版本进行Scala程序的开发。步骤包括:安装Scala插件和创建项目并在IDEA中编写Scala代码。
1.?安装Scala插件
①?运行IDEA并安装和配置IDEA的Scala开发插件,启动程序界面如图3-2所示,此时需要选择“Conf?igure”,然后进入IDEA的配置页面。
③?点击安装界面左下角的“Install JetBrains plugin”选项,进入JetBrains插件选择页面,如图3-4所示。
插件安装完毕,重启IDEA。
2.?创建项目并在IDEA中编写Scala代码
①?进入首页(见图3-2),选择“Create New Project”命令,此时选择左侧列表中的“Scala”选项,为了方便以后的开发工作,选择右侧的“SBT”选项,如图3-6所示。
③?由于在前面选择了“SBT”选项,所以此时IDEA智能地构建SBT工具:点击工程名称“HelloSpark”,可以看到SBT自动创建的一些目录,如图3-8所示。
④?此时右击src目录下main中的scala,在弹出的“New”菜单下选择“Scala Class”,在弹出的“Create New Scala Class”对话框中输入文件名“HelloSpark”,把Kind选择为“Object”,点击“OK”按钮完成,如图3-9所示。
3.?加入Spark开发包
使用IDEA导入外部Jar包,具体步骤:“File”→“Project Structure”→“Modules”→“Dependencies”→+...→“Library...”→“Library Type(Java)”→“Select Library Files”→“Conf?igure Library”,以添加spark-assembly-1.5.0-hadoop2.3.0.jar为例,添加步骤如下:
①?点击“File”,选择“Project Structure”,如图3-11所示。
④?通过“Select Library Files”,选择“spark-assembly--.jar”,如图3-14所示。
选择完毕进行Spark开发包加载。
4.?JDK路径错误处理
如果SBT出现如图3-15提示,这是由于没有设置Java的JDK路径。
请点击最右侧的“Project Structure”,如图3-16所示,进入视图,并配置项目JDK。
选择最左侧的“Project”选项,并选择“No SDK”的“New”如图3-17所示,选择项目JDK为1.7。
重启IDEA,问题解决。
5.?SBT下载不完整问题处理
如果不能出现完整的SBT目录,选择“View”目录的下拉菜单“Tool Windows”目录,选择“SBT”,如图3-18所示。
如果完整目录还是不可见,可以查看具体日志,然后将需要下载的sbt包下载下来,放到相应的目录,一般是当前用户的.ivy2目录,然后删除HelloSpark项目,重新建项目。
最终可以见到完整的SBT路径。
6.?IDEA生成Jar包
使用IDEA编译class文件,同时可以将class打包成Jar文件,方法如下:
①?选择菜单“File”→“Project Structure”,弹出“Project Structure”的设置对话框;
②?选择左边的“Artifacts”,点击上方的“+”按钮;
③?在弹出的对话框中选择“Jar”→“from moduls with dependencies”;
④?选择要启动的类,然后确定;
⑤?应用之后选择菜单“Build”→“Build Artifacts”,选择“Build”或者“Rebuild”后即可生成,生成的Jar文件位于工程项目目录的out/artifacts下。
《Spark核心技术与高级应用》——3.2节构建Spark的开发环境相关推荐
- 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
本节书摘来自华章社区<Spark核心技术与高级应用>一书中的第1章,第1.2节Spark的重要扩展,作者于俊 向海 代其锋 马海平,更多章节内容可以访问云栖社区"华章社区&quo ...
- 《Android多媒体应用开发实战详解:图像、音频、视频、2D和3D》——1.3节搭建Android应用开发环境...
本节书摘来自异步社区<Android多媒体应用开发实战详解:图像.音频.视频.2D和3D>一书中的第1章,第1.3节搭建Android应用开发环境,作者 王石磊 , 吴峥,更多章节内容可以 ...
- 《Android 网络开发与应用实战详解》——1.3节搭建Android应用开发环境
本节书摘来自异步社区<Android 网络开发与应用实战详解>一书中的第1章,第1.3节搭建Android应用开发环境,作者 王东华,更多章节内容可以访问云栖社区"异步社区&qu ...
- 第一节:ASP.NET开发环境配置
第一节:ASP.NET开发环境配置 什么是ASP.NET,学这个可以做什么,学习这些有什么内容? ASP.NET是微软公司推出的WEB开发技术. 2002年,推出第一个版本,先后推出ASP.NET2. ...
- java判断读到末尾_Java Web入门之java--第一节 java 简介及开发环境安装
本篇博客是Java web入门的第一篇博客,这篇博客主要讲述java语言的一些简介. 一)先从Java语言的诞生说起. 1991年,Sun公司在一个叫做James Gosling的人的带领下,成立了一 ...
- Spark的安装与使用 第1关:Scala语言开发环境的部署
Scala是一种函数式面向对象语言,它融汇了许多前所未有的特性,而同时又运行于JVM之上.随着开发者对Scala的兴趣日增,以及越来越多的工具支持,无疑Scala语言将成为你手上一件必不可少的工具. ...
- dreamweaver 正则表达式为属性值加上双引号_PHP正则表达式核心技术完全详解 第2节...
PHP 正则表达式核心技术完全详解 第2节 接上一节内容 1 普通字符作为原子 /5/ 用于匹配字符串中是否有5这个字符出现 /php/ 用于匹配字符串中是否有PHP字符串出现 / / 匹配空字符串 ...
- 【翻译】StreamDM:基于Spark Streaming的高级数据挖掘 StreamDM: Advanced Data Mining in Spark Streaming
[翻译]StreamDM:基于Spark Streaming的高级数据挖掘 StreamDM: Advanced Data Mining in Spark Streaming 摘要 Abstract ...
- 大数据技术,Spark核心技术之运行原理
在大数据领域,只有深挖数据科学领域,走在学术前沿,才能在底层算法和模型方面走在前面,从而占据领先地位. Spark的这种学术基因,使得它从一开始就在大数据领域建立了一定优势.无论是性能,还是方案的统一 ...
最新文章
- FPGA之道(46)数字电路中的隐患
- 利用Git Bash 远程访问服务器
- 量化交易实战——互联网金融之四
- go语言操作xlsx文件
- 重叠面积_重叠面积——动点产生的重叠面积问题
- js模块化编程之彻底弄懂CommonJS和AMD/CMD
- 测试开发必备技能与成长路径
- ubuntu16.04 apt-get update出错:由于没有公钥,无法验证下列签名
- 用c语言判断计算机是大端模式还是小端模式
- java-线程同步问题
- qq邮箱foxmail imap服务器,Foxmail如何设置IAMP邮箱
- 有哪些APP小众却实用,让你相见恨晚
- 【JVM学习笔记】JVM内存区域定义与内存结构
- 什么是商业智能 (BI) 仪表板?
- 谷歌浏览器(chrome)允许跨域设置的方法
- shell脚本括号使用
- 第四范式将亮相2021世界人工智能大会
- 企业跨境电商平台服务解决方案,跨境电子商务贸易业务框架搭建运维
- 频谱分析仪是什么?以及频谱分析仪的应用领域及工作原理
- 一.PHP基础知识相关面试题
热门文章
- scanf()函数错误把输入缓存里的回车作为一次字符输入
- oracle实例是否有dbid,Oracle如何获得数据库的DBID
- php无嵌套遍历多维数组,不递归怎么遍历多维数组(维数不定)
- php 统计目录大小,PHP 统计目录大小
- 单片机串口通信学号显示_触摸屏与单片机串口通信测试
- idea cloud bootstrap是啥_application.yml与bootstrap.yml的区别
- 班尼机器人怎么拆_博鼎建筑科技外墙错台打磨机器人和外墙螺杆洞封堵机器人—自升造楼平台1+N执行器...
- 1103: 平均学分绩点(函数专题)
- zzulioj1111: 多个整数的逆序输出(函数专题)
- C语言(CED)01背包——动态规划第二题