ITEEDU

编程学习网


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 旧站归档

  • 搜索

搭建spark开发环境

发表于 2017-07-07 更新于 2019-06-29 分类于 大数据 , spark

##下载包

IDE:http://scala-ide.org/

SBT:http://www.scala-sbt.org/

Windows环境需要下载hadoop common包,并添加bin目录到PATH环境变量上:

https://github.com/srccodes/hadoop-common-2.2.0-bin

##SBT安装

  1. 下载压缩包,解压到指定位置SBT_HOME。
  2. 将SBT_HOME\bin目录添加到环境变量中,在命令行可以执行sbt命令。
  3. 配制SBT

##SBT配制

修改SBT_HOME\conf\sbtconfig.txt,添加

1
-Dsbt.ivy.home=<库文件下载到本地的位置>

创建库配制

1
~/.sbt/repositories

文件内容

1
2
3
4
5
6
[repositories]
local
local_m2: file:/home/darwin/.m2/repository/
aliyun: http://maven.aliyun.com/nexus/content/groups/public/
cloudera: https://repository.cloudera.com/artifactory/cloudera-repos/
maven-central: http://central.maven.org/maven2/

创建插件配制

1
~/.sbt/0.13/plugins/plugins.sbt

文件内容

1
2
3
4
5
6
7
8
9
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.0")

addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.7.5")

addSbtPlugin("no.arktekk.sbt" % "aether-deploy" % "0.16")

addSbtPlugin("com.eed3si9n" % "sbt-dirty-money" % "0.1.0")

创建全配制文件

1
~/.sbt/0.13/global.sbt

文件内容

1
net.virtualvoid.sbt.graph.Plugin.graphSettings

##创建spark项目

按如下结构创建目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.
|-- build.sbt 主构建文件
|—lib 第三方jar包
|—project 下有另一个可编程的Build.Scala构建文件可实现高级复杂功能
|-- src
| |-- main
| | |-- Java
| | |-- resources
| | |-- scala
| |-- test
| |-- java
| |-- resources
| |-- scala
|—target 可选

惯例:build.sbt定义主要简单的配置,对于构建逻辑放到project下的.scala文件中,用于更复杂定义和共享代码

在build.sbt中添加spark包依赖

1
2
3
4
5
6
7
8
9
10
name := "SparkDemo"

version := "1.0"

scalaVersion := "2.11.11"

libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.1.0.cloudera1" % "provided",
"org.apache.spark" %% "spark-sql" % "2.1.0.cloudera1" % "provided"
)

运行如下命令创建项目为eclipse项目:

1
sbt eclipse

以后每次修改了sbt依赖都要再执行一次这个命令。

##示例

一个做单词统计的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.iteedu.demo.spark

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf

/**
* 对文件里的单词记数示例
*
*/
object WordCountDemo {

def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("spark init test");
//如果在本地测试,设置master为本地
//方法一:在运行配制里添加JVM参数
//-Dspark.master=local
//方法二:在代码里指定
conf.setMaster("local");
val sc = new SparkContext(conf);

val textFile = sc.textFile("file:///D:/generatorConfig.xml")
val counts = textFile.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey(_ + _)
counts.saveAsTextFile("file:///D:/out")
}
}
证心 微信支付

微信支付

# 大数据 # spark
(转)JAVA8之Nashorn脚本引擎
【scala】关键字implicit详解

证心

367 日志
45 分类
78 标签
GitHub 微博
京ICP备16069454号 © 2020 证心