1. 前置要求(地址我给也贴下来,方便大家快速上手)
注意:我个人的环境是centos6.5,编译的是 spark-2.3.1-bin-2.6.0-cdh5.7.5
版本:scala 2.11.8 -- maven 3.3.9 -- java 1.8 -- spark 2.3.1 -- hadoop 2.6.0-cdh5.7.5
-
安装 apache-maven-3.3.9(或者更高) ---> http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar -zxf apache-maven-3.3.9-bin.tar.gz -C /ruozedata/app/ ---> 配置环境变量(这个就不多说了) - 安装jdk(spark 2.2.0 以后编译必须是maven3.3.9 或者更新 以及 java8 +) ;java8 下载地址:http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1535218413_45f78876c90c00129126180f38645634
- 安装 scala 地址: https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
- 配置环境变量,和 java maven 一样
- source /etc/profile 使得环境变量生效
- java -version mvn -v scala 进控制台,验证是否安装成功
- 进 maven 的 conf/settings.xml 修改maven 的仓库路径(虚拟机默认是在C盘,我的是/ruozedata/hadoop/maven-repo)
- <localRepository>/ruozedata/hadoop/maven-re</localRepository>
- git 后期编译可能会用上,因为编译脚本里面有写,所以安装一下: yum install git
- (大家安装软件的目录自己根据个人情况定就行)
2.下载编译spark
- spark源码包下载地址:https://archive.apache.org/dist/spark/spark-2.3.1/spark-2.3.1.tgz
- wget https://archive.apache.org/dist/spark/spark-2.3.1/spark-2.3.1.tgz
- tar -zxf -C /(自己的安装目录)
- 因为编译的方法有多种,开发使用可以用 ./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package 这种编译,它不能编译成包,故此这里不多做介绍,大家下来可以自己看官网了解一下
- 接下来我介绍的这种方法是可以编译成 tgz 包的,编译需要时间有点长,所以.......
- 为了编译快点,进入刚才解压spark的目录: vim dev/make-distribution.sh,把下面的这些注释掉:
- #VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null | grep -v "INFO" | tail -n 1)
#SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | tail -n 1)
#SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | tail -n 1)
#SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\
# | grep -v "INFO"\
# | fgrep --count "<id>hive</id>";\
# # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
# # because we use "set -o pipefail"
# echo -n)
- #VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null | grep -v "INFO" | tail -n 1)
- 然后在下面加入这几行:(这个1. 不是,我不会排版,这能这样)
- VERSION=2.3.1
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.6.0-cdh5.7.5
SPARK_HIVE=1
- VERSION=2.3.1
- 在spark pom.xml 里面添加一个仓库:
- <repository>
<id>cloudera</id>
<name>cloudera Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>- 配置这个是为了少踩坑
- maven 里面默认的仓库访问可能有问题,所以在maven conf/settings.xml 里面加入阿里的仓库:
- <mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
- <mirror>
- 在spark 的根目录下执行命令:./dev/make-distribution.sh \
--name 2.6.0-cdh5.7.5 \
--tgz \
-Dhadoop.version=2.6.0-cdh5.7.5 \
-Phadoop-2.6 \
-Phive -Phive-thriftserver \
-Pyarn - (过程中网不能太差,有时候会因为网的原因需要重新编译),如果重新编译,jps 看一下,有一个Nailgun进程,kill -9 杀掉,然后重新执行命令
- 等待编译成功,会在spark目录生成一个:
spark-2.2.0-bin-2.6.0-cdh5.7.0.tgz
转载请注明出处:https://blog.csdn.net/zilianxiaozhu/article/details/82057344