Spark编译
有三种方式:SBT(Simple Build Tool),Maven,Make-distribution.sh
其中SBT,Maven两种方式打出来的包比较大,因此使用第三种方式编译
官方已经提供了安装包了,为什么要自己编译呢?
Spark能同Hadoop进行交互,而Hadoop的厂商比较多有很多商业版。Spark官方提供的安装包不一定和我们的Hadoop集群版本相同,如果不相同就有可能出现莫名其妙的错误。这时,我们手工指定相应版本进行编译是最好选择
SBT编译
sbt/sbt clean assembly
Maven编译
由于Maven工具默认的内存比较小,需要先调大其占用的内存上限
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
打包
mvn clean assembly:assembly
make-distribution.sh构建安装包
该脚本会使用MAVEN进行编译,然后打成一个tgz包。
脚本的使用方法:
./make-distribution.sh --help
打包:
./make-distribution.sh --tgz --with-tachyon
Hadoop版本对应的MAVEN Profile
Hadoop version Profile required
0.23.x hadoop-0.23
1.x to 2.1.x (none)
2.2.x hadoop-2.2
2.3.x hadoop-2.3
2.4.x hadoop-2.4
Yarn版本对应的MAVEN Profile
YARN version Profile required
0.23.x to 2.1.x yarn-alpha
2.2.x and later yarn
Hive对应的MAVEN Profile
在构造脚本后面添加 -Phive便可
自定义Hadoop版本
如果要构建hortonworks Hadoop 2.4.0.2.1.4.0-632,所对应的Hadoop版本是2.4.x。因此,相应的Profile为-Phadoop-2.4 -Pyarn。
编译方式:
SBT
sbt clean assembly -Phive -Phadoop-2.4 -Pyarn -Dhadoop.version=2.4.0.2.1.4.0-632
Maven
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
mvn clean assembly:assembly
make-distribution.sh
1.1.x 使用
./make-distribution.sh --tgz --with-tachyon -Phadoop-2.4 -Pyarn -Phive -Dhadoop.version=2.4.0.2.1.4.0-632
对于1.1.x以前的版本使用:
./make-distribution.sh --hadoop 2.4.0.2.1.4.0-632 --with-yarn --with-tachyon --tgz
如果yarn的版本和Hadoop的版本不一致可添加
-Dyarn.version=2.4.0.2.1.4.0-632