环境准备
1.下载下面需要的软件
maven | apache-maven-3.5.4-bin.tar.gz |
---|---|
scala | scala-2.12.8.tgz |
java | jdk-8u45-linux-x64.gz |
spark编译包 | spark-2.4.3.tgz |
2.在hadoop用户下创建目录,并上传这些软件
[hadoop@hadoop001 ~]$ mkdir app software lib resource logs data
通过rz命令将上面的软件都上传到software目录
3.安装maven包、scala包和jdk包
因我环境之前java包都已经在/usr/java目录配好了,所以在这里就不安装了
-
maven安装
[hadoop@hadoop001 ~]$ tar -xzvf ~/software/apache-maven-3.5.4-bin.tar.gz -C ~/app/ [hadoop@hadoop001 ~]$ cd app/apache-maven-3.5.4/ [hadoop@hadoop001 apache-maven-3.5.4]$ pwd /home/hadoop/app/apache-maven-3.5.4
配置环境变量
vim ~/.bash_profile 添加 export MAVEN_HOME=/home/hadoop/app/apache-maven-3.5.4 export PATH=${MAVEN_HOME}/bin:$PATH [hadoop@hadoop001 ~]$ mvn -version Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00) Maven home: /home/hadoop/app/apache-maven-3.5.4 Java version: 1.8.0_45, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_45/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"
-
scala安装
[hadoop@hadoop001 ~]$ tar ~/software/scala-2.12.8.tgz -C ~/app/ 配置环境变量 vim ~/.bash_profile export SCALA_HOME=/home/hadoop/app/scala-2.12.8 export PATH=${SCALA_HOME}/bin:$PATH
编译spark2.4.3源码
1.修改maven仓的存放路径
[hadoop@hadoop001 ~]$ vim app/apache-maven-3.5.4/conf/settings.xml
默认是在hadoop用户的家目录的.m2/repository下,还要注意不要写在注释里面。
2.解压源码包,在pom.xml文件添加一个cloudera repository资源仓。
[hadoop@hadoop001 source]$ tar ~/software/spark-2.4.3.tgz -C ~/source/
[hadoop@hadoop001 ~]$ cd source/spark-2.4.3
[hadoop@hadoop001 spark-2.4.3]$ pwd
/home/hadoop/source/spark-2.4.3
[hadoop@hadoop001 spark-2.4.3]$ vim pom.xml
添加 <repository>
<id>cloudera</id>
<name>cloudera Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
</repository>
注意:如图,前面的maven资源仓不能删,而且必须写在第一位。
3.为了加快编译的速度,直接在编译执行的脚本文件中修改spark 、 SCALA_VERSION 、SPARK_HADOOP_VERSION 、 SPARK_HIVE几个组件的版本,不需要再去花时间查找。
[hadoop@hadoop001 spark-2.4.3]$ vim ./dev/make-distribution.sh
version代表当前编译的sprk的版本
SCALA_VERSION带表scala的大版本,这里只支持2.11和2.12不支持2.13,可以通过看该脚本获知
SPARK_HADOOP_VERSION 表示spark编译支持的hadoop的版本
hive表示hive的大版本
[hadoop@hadoop001 spark-2.4.3]$ ./dev/change-scala-version.sh 2.12 //因为这里scala默认是支持2.11的,如果用scala2.12必须要执行这个命令,然后再执行下面的脚本编译命令
[hadoop@hadoop001 spark-2.4.3]$ ./dev/make-distribution.sh --name 2.6.0-cdh5.15.1 --tgz -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.15.1 -Phive -Phive-thriftserver -Pscala-2.12 compile
最后经过2个小时左右的编译,会在spark源码的家目录生成spark-2.4.3-bin-2.6.0-cdh5.15.1.tgz的spark的安装包,前面是park版本后面是hadoop的版本。