Spark:windows下配置spark开发环境
安装基本的开发环境
-
从spark官网下载spark,如spark-2.3.0-bin-hadoop2.7.tgz,解压并配置环境变量:
- 增加
SPARK_HOME
PATH
中加入%SPARK_HOME%\bin
- 增加
-
下载对应版本Scala,若不是安装版解压后需要配置环境变量,同第一步,安装成功后在命令行里应该可以启动scala shell。
-
下载对应版本hadoop,如hadoop-2.7.5.tar.gz,解压并配置环境变量,同第一步。
-
下载对应版本winutils.exe,放入
%HADOOP_HOME%\bin
目录。 下载地址:https://github.com/steveloughran/winutils 。
此时应该可以正常启动spark-shell。
若使用spark.table("table")
读取表出错,可能是因为在系统盘权限不足,切换目录重新运行spark-shell或执行以下语句:%HADOOP_HOME%\bin\winutils.exe chmod 777 tmp/hive
改变权限 -
下载eclipse,解压,Help—>Eclipse Marketplace,搜索Scala IDE插件安装,重启eclipse。就可以新建Scala项目了。
-
下载sbt,若不是安装版解压后需要配置环境变量,同第一步。
安装sbteclipse插件
修改sbt资源库.ivy2位置
%SBT_HOME%/conf/sbtopts
里面进行配置(此步骤不用配置,因为用下面的修改即可起效)
-sbt-dir d:/scala/sbt/sbt_0.13.17
-sbt-boot d:/scala/sbt/.sbt/boot
-ivy d:/scala/sbt/.ivy2
-sbt-version 0.13.17
-scala-version 2.11.12
修改%SBT_HOME%/bin
下sbt-launch.jar,用压缩打包软件打开,修改里面的sbt/sbt.boot.properties
文件(修改前备份)。
[repositories]
local
local-preloaded-ivy: file:///${sbt.preloaded-${sbt.global.base-${user.home}/.sbt}/preloaded/}, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]
local-preloaded: file:///${sbt.preloaded-${sbt.global.base-${user.home}/.sbt}/preloaded/}
maven-central
typesafe-ivy-releases: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
sbt-ivy-snapshots: https://repo.scala-sbt.org/scalasbt/ivy-snapshots/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
aliyun: http://maven.aliyun.com/nexus/content/groups/public/
sbt-maven-releases: http://repo.scala-sbt.org/scalasbt/maven-releases/, bootOnly
sbt-maven-snapshots: http://repo.scala-sbt.org/scalasbt/maven-snapshots/, bootOnly
[boot]
directory: d:/scala/sbt/.sbt/boot/
[ivy]
ivy-home: d:/scala/sbt/.ivy2
checksums: ${sbt.checksums-sha1,md5}
override-build-repos: ${sbt.override.build.repos-false}
repository-config: d:/scala/sbt/.sbt/repositories
安装sbteclipse插件
https://github.com/sbt/sbteclipse
编辑(不存在则先新建)两个文件:
- ~/.sbt/1.0/plugins/plugins.sbt
- ~/.sbt/0.13/plugins/plugins.sbt
~
表示C盘用户目录,注意此时就算更改了资源库位置也会在C盘用户目录生成.sbt文件夹,plugins.sbt放在此处
文件内容:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.2.4")
完成以上工作后:
-
在eclipse里建立一个scala项目。
-
打开cmd,cd到项目根目录下。
也就是和build.sbt位于同一目录。 -
执行
sbt eclipse
命令下载依赖
下载完成后刷新eclipse项目就好了。
也可以在workplace里面新建立一个文件夹,在里面运行sbt eclipse
,然后用eclipse导入项目,再修改下里面的scala版本(不用修改Java Build Path,直接修改Scala Compiler就好),加入source文件夹等(推荐这种方式)。
一个build.sbt文件的例子:
name := "Test"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.1"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.3.1"
libraryDependencies += "org.apache.spark" %% "spark-mllib" % "2.3.1"
libraryDependencies += "org.apache.hbase" % "hbase-common" % "1.4.0"
libraryDependencies += "org.apache.hbase" % "hbase-client" % "1.4.0"
libraryDependencies += "org.apache.hbase" % "hbase-server" % "1.4.0"
libraryDependencies += "org.apache.hadoop" % "hadoop-common" % "2.7.5"
libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "2.7.5"
libraryDependencies += "org.apache.hadoop" % "hadoop-hdfs" % "2.7.5"
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.3.6"
lazy val akkaVersion = "2.5.3"
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-actor" % akkaVersion,
"com.typesafe.akka" %% "akka-testkit" % akkaVersion,
"org.scalatest" %% "scalatest" % "3.0.1" % "test"
)