前言:
首先为什么要用apache spark2.3.2的源码来自己编译?
- 因为spark一般需要结合Hadoop来使用,所以需要对应Hadoop相应的版本。
- CDH编译好的spark,可能在结合其它组件使用的时候,容易出现一些问题。
简介:
- 网址:http://spark.apache.org/
- 从官网简介可以看出:
- 快如闪电的统一分析引擎
- Apache Spark™是用于大规模数据处理的统一分析引擎。
- 有很多的优点:
- 速度快:以100倍的速度运行工作负载。
- 便于使用:支持Java,Scala,Python,R和SQL等语言快速编写应用程序。
- 健壮性:可以结合SQL、流式处理和一些复杂的分析,比如机器学习等。
- 运行在各个地方:Spark运行在Hadoop、Apache Mesos、Kubernetes、standalone或云端。它可以访问不同的数据源。
编译环境:
根据spark官网给出的信息:http://spark.apache.org/docs/2.3.2/
以下是官网给出的版本要求信息:
从这段信息可以看出,spark支持的是Java 8+和Scala 2.11.x,对于spark2.2.0就已经不再支持Java 7和Hadoop 2.6.5之前的版本了(但是我在CDH5.13.1上编译,运行spark都没什么问题,Hadoop是2.6.0的),而spark2.3.0就开始不再支持Scala 2.10了。
如果需要使用Maven进行编译,官网给出的编译要求和编译步骤:http://spark.apache.org/docs/2.3.2/building-spark.html
以下是官网给出的Maven版本要求:
从这段信息可以看出,Maven需要3.3.9或以上版本
以下是笔者的环境版本:
- CentOS release 6.10 (Final)
- java version "1.8.0_131"
- Apache Maven 3.5.0
- Scala version 2.11.8
- Apache spark 2.3.2
编译前准备:
众所周知,spark是个非常吃内存的家伙,所以用虚拟机的小伙伴,最好把虚拟机内存调大一些,最好大于3个G。
安装配置JDK
Java网址:https://www.oracle.com/technetwork/java/index.html+
- 下载JDK:
- 选择JDK版本的地址,笔者选的是Java SE 8,点击进入:https://www.oracle.com/technetwork/java