spark怎么学习呢?在一无所知的前提下,首先去官网快速了解一下spark是干什么的,官网在此。然后,安装开发环境,从wordcount开始学习。第三,上手以后可以学习其他算法了。最后,不要放弃,继续深入学习。
那么,首先解决的就是如何搭建开发环境的问题。
1、确保你的电脑安装了JDK,以及配置了JAVA_HOME环境变量。
2、安装Intellij IDEA,下载地址。目前15.0版本对Scala的支持性就很好。
3、安装scala插件。在首次使用Intellij的时候会出现安装插件的提示,如果错过了也没有关系,在setting里,找到Plugins,输入scala,安装即可。
4、搭建spark开发环境。
4.1 下载spark的jar包,下载地址。例如我要下载1.5.0版本的spark,hadoop是2.4版本,选项如图:
4.2 解压下载的包,我们需要用的是lib下的spark-assembly-1.5.0-hadoop2.4.0.jar这个包。
4.3 新建scala项目,File -> New Project -> scala -> next填写name和SDK -> finish。
4.4 在项目页“File” -> “project structure” -> “Libraries”, 点“+”,选java,找到spark-assembly-1.5.0-hadoop2.4.0.jar导入,这样就可以编写spark的scala程序了。
4.5 很多时候我们都需要用到maven或者SBT管理依赖,这里我用的是maven。Intellij15.0对maven也很有好,只需要简单配置一下maven仓库地址即可。
5、开心的coding吧!
插入代码
package main.scala
import org.apache.spark.{SparkConf, SparkContext}
object SimpleApp {
def main(args: Array[String]) {
val logFile = "D:/IdeaProjects/spark-test/README.md" // Should be some file on your system
val conf = new SparkConf().setAppName("Simple Application").setMaster("local")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
}
}
6、打包导出到集群运行。
6.1 如果pom.xml文件中存在hadoop或者spark的依赖,请在打包之前注释掉。因为集群已经有包了,注释掉既能减少包的大小,又能避免某些jar版本冲突。
6.2 Intellij中点击“File - Project Struction - Artifacts - + - Jar - From modules with dependencies…”,填写modules、Main Class以及路径等,点击OK生成jar包。
6.3 Intellij中点击“Build- Build artifacts… ”,选择刚生成的jar包进行build。
6.4 将打包好的jar包上传到服务器某路径下。
6.5 执行提交命令:
spark-submit WhereIsYourJar 其他参数