3支付环境搭建和开发示范

【原创】Helenykwang 于2018-01-13 18:10:18编写

不用maven,不用sbt,只需七个库

① 、环境表达

集群:Spark 2.1.2 + hadoop2.3

开发机OS:win7

Jdk 1.8.0_151

下载jre即可
http://www.oracle.com/technetwork/java/javase/downloads/index.html

注:JDK是三个阳台湾特务定的软件,有针对性Windows,Mac和Unix系统的不等的安装包。
能够说JDK是JRE的超集,它涵盖了JRE的Java编写翻译器,调节和测试器和宗旨类

scala 2.11.8
http://www.scala-lang.org/download/

IntelliJ IDEA 2017.3

spark 源码spark-2.1.2-bin-hadoop2.3

贰 、环境搭建

1. 骨干配备

设置java、scala,配置环境变量JAVA_HOME、SCALA_HOME为对应安装路径

PATH后边添加%JAVA_HOME%\jre\bin; %SCALA_HOME%\bin

【WIN】%JAVA_HOME%

【Linux】$JAVA_HOME

小心:scala 安装路径不可能有空格,不然会报错

>>找不到或不能够加载主类scala.tools.nsc.MainGenericRunner

考查标准

打开CMD,分别实施java、scala命令。

2. 装置配备英特尔liJ IDEA 2017.3

发轫化后,在file –settings 中添加scala插件,重启

三 、开发示范

1. 新建筑工程程

实质上那里选个java工程就行了,不用搞那么复杂,记住主借使凭借库java、scala、spark源码库添加好就行。

下图突显了创造工程时添加java-sdk、scala-sdk的进度。

开创一些必不可少的目录,笔者的demo的目录树如下:

在scala目录右键mark Directory as — Source Root

2. 抬高spark源码注重

从File – Project Structure 进入,添加Lib,按下图操作甘休后,点击apply –
ok

文件树的外部库会油然则生以下多少个:分别是java、spark、scala【重点强调唷~
三者缺一不可,别的随意】

3. 编写程序

新建二个scala文件斯Parker德姆o.scala,代码如下:

package demo

importorg.apache.spark._

objectSparkDemo{

  def main(args: Array[String]): Unit = {

        val masterUrl = “local[1]”

        val sparkconf =
newSparkConf().setAppName(“helenApp”).setMaster(masterUrl)

        //spark配置,提出保留setMaster(local)

        //调节和测试的时候供给,在骨子里集群上跑的时候可在命令行自定义

        val sc = new SparkContext(sparkconf)

        val rdd=sc.parallelize(List(1,2,3,4,5,6)).map(_*3) 
//将数组(1,2,3,4,5,6)分别乘3

      rdd.filter(_>10).collect().foreach(println) 
//打字与印刷大于10的数字

        println(rdd.reduce(_+_))  //打印 和

        println(“hello world”)  // demo必备的一句代码!!! [认真脸]

  }

}

这时候,scala编辑界面或者现身那句话,点击setup scala SDK就足以了。

依赖库添加成功的查检专业是,import org.apache.spark._不报错。

点击铅灰三角形,run~

在console界面不奇怪输出!(*^__^*)

4. 打包jar包

依旧是从老朋友File–Project Structure 进入,在Artifacts下添加jar。

瞩目:打包的jar包不须求把spark源码也搞进去的,因为集群上本身就有spark代码,所以就留下以下那八个公文即可~~~
点击apply –ok

在主界面,Build—Build Artifacts。开头编写翻译~~~
编写翻译OK后会多出四个out目录,里面有最终jar包

翻开主类,MANIFEST.MF文件内容如下:

Manifest-Version:1.0

Main-Class:demo.SparkDemo

5. 集群上运行jar包

Jar包放到/home/hadoop目录下

>>spark-submit  –class demo.SparkDemo–master spark://:7077
project_name.jar

亚洲必赢bwin696.com,注明:–class <主类名>
最终跟的参数是大家的jar包。–master钦定了集群master,中间还足以自定义一些spark配置参数,例如:

–num-executors 100 \

      –executor-memory6G \

      –executor-cores4 \

      –driver-memory1G \

      –confspark.default.parallelism=1000 \

      –confspark.storage.memoryFraction=0.5 \

      –confspark.shuffle.memoryFraction=0.3 \

集群上运转成功~~~

总结

实际看了累累怎么着maven工程、scala工程构建格局,其实丹东小异,重点无非是java、spark、scala的重视搞好,那才是基本难点。

留意版本一致性,包涵:

· 开发机和集群的spark源码版本一样

· 开发IDE中scala插件和系统安装的scala和集群上scala版本相同

· scala 和spark 版本匹配。(spark2.x 相比 1.x 有不可胜举不一,请使用scala
2.11+版本)

===================分割线=======================

踩过的坑 ~ (๑ŐдŐ)b,欢迎小伙伴们和自家享受碰到的题目 (*^__^*) ~

错误集锦

阴差阳错景况:

命令行运转scala时,找不到或不可能加载主类scala.tools.nsc.MainGenericRunner

出错原因:

scala安装目录出现了空格。

标题一蹴而就:

将Scala 移动到没有空格的文本夹下。重新设置SCALA_HOME。文件化解。

出错景况:

编写程序时,调用rdd.saveAsTextFile 报错NullPointerException

出错原因:

和hadoop文件输出配置有关,下个补丁,配置一下即可

消除措施:

1)下载文件winutils.exe

2) 将此文件放置在某些目录下,比如D:\hadoop\bin\中。

3)在scala程序的一方始表明:System.setProperty(“hadoop.home.dir”,”D:\\hadoop\\”)

出错情况:

maven开始化学工业程时,连接https://repo.maven.apache.org/maven2过期战败

阴差阳错原因:

PC互联网自个儿的难题。无法访问外网。

不留余地措施:

选拔maven离线情势,手动把信赖库导入 <用户目录>\\.m\\
repository

Q:哪一天必要maven离线形式呢?

A:没有互连网,唯有本地库,又是用maven来治本项目,在编写翻译恐怕下载第②方Jar的时候,老是去大旨仓库上机关下载,导致出难题。

1)    全局设置Work offline 如下图所示

2)    编辑 <用户目录>\\.m\\
settings.xml,写一行:<offline> true</offline>

相关文章