使用IDE(eclipse,idea)开发spark程序

本文详细介绍了如何使用IDEA和Eclipse进行Spark程序开发,包括环境准备、安装配置Scala和Python插件、构建开发环境、解决常见问题及生成jar包的方法。并提供了使用sbt和spark-submit提交程序的步骤。
摘要由CSDN通过智能技术生成
1.使用spark-shell编写程序:
启动spark-shell
bin/spark-shell --master local[4] --jars testcode.jar
[4]表示在4个cpu核上运行,--jars指明需要的jar包路径
使用IDE(eclipse,idea)开发spark程序 - Binder - Binder
 
加载text文件
scala> val textFile = sc.textFile("file:///da ta/software/spark-1.4.0-bin-hadoop2.6/README.md")
使用IDE(eclipse,idea)开发spark程序 - Binder - Binder

简单RDD操作
//获取文件第一项
scala>textFile.first()
scala>textFile.count()

scala>val textFilter = textFile.filter(line =>line.contains("Spark")).count

scala>textFile.map(line => line.split(" ").size).reduce((a,b) => if(a > b) a else b)
词频统计:
scala>val wordcount = textFile.flatMap(line => line.split(" ")).map(word => (word,1)).reduceBykey((a,b) => a+b).collect
使用IDE(eclipse,idea)开发spark程序 - Binder - Binder

简化方式:
scala> val wordcount = textFile.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect()
按value降序排序:
scala> val wordcount = textFile.flatMap(_.split(" ")).map(_,1).reduceByKey(_+_)
.map(x => (x._2,x._1)).sortByKey(false).map(x => (x._2,x._1)).collect()

使用IDE开发spark程序
1.环境准备:
1)安装jdk,配置环境变量。略。。。
2)安装scala,配置环境变量。略。。。
3)安装python,配置环境变量。略。。。

2.构建eclipse开发环境
可以在原有eclipse添加插件,也可以在scala官网直接下载eclipse IDE,以下为在原有eclipse添加插件的方法
(推荐直接下载scala官网中的IDE免去一系列设置。。或者使用IDEA进行开发)

1)安装eclipse
2)安装scala插件
打开eclipse,依次选择Help->Install New Software->选项里填入
http://download.scala-ide.org/sdk/e38/scala210/stable/site/  ->选择Scala IDE for eclipse和Scale IDE for eclipse development support,完成安装。
使用IDE(eclipse,idea)开发spark程序 - Binder - Binder

3)安装Python插件
打开eclipse,选择Help-> Install New software ->点击Add->名称输入PyDev,链接输入 http://pydev.org/updates  ->点击ok -> 点击结果中的PyDev -> 点击next。完成安装

配置Python解释器。 在eclipse菜单栏中选择Window ->preferences -> Pydev -> Interpreter -(Python/Jython)命令
重启eclipse使其生效。

3.构建IntelliJ IDEA开发环境
在官网下载IDEA,http://www.jetbrains.com/idea/

1) 安装Scala插件
打开IDEA,在启动程序界面上点击Configure->Plugins,如果之前打开过IDEA也可以在IDEA内点击File->Settings->Plugins
使用IDE(eclipse,idea)开发spark程序 - Binder - Binder

点击左下角的Install JetBrains plugin,进入JetBrains选择页面,搜索Scala,选中Scala后右侧点击Install plugin,
可能会遇到网络不稳定导致的错误,此时可以提前下载好scala插件(http://plugins.jetbrains.com/plugin/?idea&id=1347),然后在plugins页面中选择Install plugin from disk进行安装,安装完毕后重启IDEA
2)创建项目
进入IDEA,选择File->New Project ->右侧选择SBT -> Next 使用IDE(eclipse,idea)开发spark程序 - Binder - Binder

进入项目创建面板,输入Project name 点击Finsh完成创建
使用IDE(eclipse,idea)开发spark程序 - Binder - Binder

此时,IDEA已为我们自动创建好了目录结构

  使用IDE(eclipse,idea)开发spark程序 - Binder - Binder
 加入Spark开发包
选择File -> Project Structure -> Modules -> Dependencies -> 右侧+号 点击Library
使用IDE(eclipse,idea)开发spark程序 - Binder - Binder
 
选择Library Type为Java
使用IDE(eclipse,idea)开发spark程序 - Binder - Binder
 选择spark-assembly-*-*.jar(spark官网可以下载spark,下载后在lib目录下可以找到),完成依赖包的加载。

使用IDE(eclipse,idea)开发spark程序 - Binder - Binder
 
遇到的问题:
1.如果出现SBT ‘ideaProject’ project refresh failed
需要重新配置java jdk路径
File->Project Structure->Project->选择No SDK的 New来选择JDK,点击OK,然后重启IDEA即可。

2.SBT不能出现完整目录
选择View->Tool Windows -> 选择SBT
然后刷新SBT Tasks
如果完整目录还是不可见,可以查看具体日志,下载需要的sbt包,放到相应目录下,一般是当前用户的.ivy2目录,然后删除SparkTest项目,重新创建项目即可

使用IDEA生成jar包
1)选择File->Project Structure
2)点击左边的Artifacts,点击上方的+
3)选择Jar->from moduls with dependencies
4)选择要启动的类,点击确定
5)应用之后,选择Build->Build Artifacts,选择Build或者ReBuild后即可生成jar包,生成的jar包在工程目录下的out/artifacts下

编写简单程序:在src/scala下创建Test.scala
使用IDE(eclipse,idea)开发spark程序 - Binder - Binder
 
打成jar包后(使用IDEA生成jar包,或者使用sbt 生成jar包),
使用sbt生成jar包,执行:sbt package

应用程序提交:(具体可见 《Spark部署与程序示例运行》)
./bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
<application-jar> \ 
[application-arguments]


master url格式:
local:在本地以单线程运行Spark
local[K]:在本地以K个Worker线程运行Spark(核数)
local[*]以与机器上的逻辑核数相同的Worker线程运行Spark
spark://master:port 连接到一个给定Spark独立模式集群上的Master,port一般为7070
yarn-client:以client模式连接到YARN集群,集群位置可以在HADOOP_CONF_DIR变量中找到
yarn-cluster:以Cluster模式连接到YARN集群,集群位置可以在HADOOP_CONF_DIR变量中找到


 


 
 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值