写在前面
生产上的spark一般来说都是需要我们自己手动编译的,编译适合自己公司生产环境上的spark版本。参照官网http://spark.apache.org/docs/latest/building-spark.html
前置:使用Maven构建Spark需要Maven 3.5.4和Java 8.
Spark 源码编译
首先调大CacheSize
vim ~/.bash_profile
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
不把参数调大可能会报OOM的错误,如下:
[ERROR] Java heap space -> [Help 1]
方式一:不推荐
Spark 源代码中自带一个maven
./build/mvn -DskipTests clean package
这样编译出来的都是源代码中pom.xml中指定的版本
默认情况编译的是不支持yarn,hive,jdbc…这样就不能使用yarn,访问hive等
方式二:不能得到tgz的包
以上种种原因,我们坑定是需要自己指定hadoop,hive等等的版本
-P 通过-P来指定pom文件中的哪一个profile,是不能乱写的,必须要pom文件中有定义过才行
-Pyarn 让yarn生效
-Phadoop-2.7 指定的hadoop版本是2.7,默认是hadoop2.6
-Dhadoop.version=2.7.3