1.1.1 安装并设置maven
1. 下载maven安装包,建议安装3.0以上版本,本次安装选择的是maven3.3.3的二进制包,下载地址如下
2. 使用ssh工具把maven包上传到/home/hadoop/upload目录
3. 解压缩apache-maven-3.3.3-bin.tar.gz包
tar -zxvf apache-maven-3.3.3-bin.tar.gz
4. 把apache-maven-3.3.3目录移到/usr/local目录下
mv apache-maven-3.3.3 /usr/local
5. 在/etc/profile配置文件中加入如下设置
export PATH=$JAVA_HOME/bin:/usr/local/apache-maven-3.3.3/bin:$PATH
1.2 编译Spark(Maven方式)
1.2.1 安装Maven并配置参数
在编译前最好安装3.0以上版本的Maven,在/etc/profile配置文件中加入如下设置:
export MAVEN_HOME=/app/apache-maven-3.3.3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$GIT_HOME/bin
1.2.2 下载Spark源代码并上传
1. 可以从如下地址下载到spark源代码:
把下载好的spark-1.6.2.tgz源代码包使用工具上传到/home/hadoop/upload 目录下
2. 在主节点上解压缩
cd /home/hadoop/upload/
tar -xzf spark-1.1.0.tgz
3. 把spark-1.6.2改名并移动到/app/complied目录下
mv spark-1.6.2 /app/complied/spark-1.6.2-mvn
1.2.3 编译代码
编译spark源代码的时候,需要从网上下载依赖包,所以整个编译过程机器必须保证在联网状态。编译执行如下脚本:
cd /app/complied/spark-1.6.2-mvn
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
mvn -Pyarn -Phadoop-2.4 -Pspark-ganglia-lgpl -Pkinesis-asl -Phive -DskipTests clean package(报错)
编译时错误的详细信息
Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:compile (scala-compile-first) on project spark-hive_2.10: Execution scala-compile-first of goalnet.alchim31.maven:scala-maven-plugin:3.2.2:compile failed. CompileFailed -> [Help 1]
我执行的命令:
build/mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package
整个编译过程编译了约24个任务,整个过程耗时1小时45分钟。
1.3 生成Spark部署包
在Spark源码根目录下有一个生成部署包的脚本make-distribution.sh,可以通过执行如下命令进行打包 ./make-distribution.sh [--name] [--tgz] [--with-tachyon]
--name NAME和--tgz 结合可以生成spark-$VERSION-bin-$NAME.tgz 的部署包,不加此参数时NAME 为hadoop 的版本号
--tgz在根目录下生成 spark-$VERSION-bin.tgz ,不加此参数时不生成tgz 文件,只生成/dist 目录
--with-tachyon 是否支持内存文件系统Tachyon ,不加此参数时不支持tachyon
例子:
1. 生成支持yarn 、hadoop2.4.0 、hive 的部署包:
./make-distribution.sh --tgz --name 2.4.0 -Pyarn -Phadoop-2.4 -Phive
2. 生成支持yarn 、hadoop2.4.0 、hive 、ganglia 的部署包:
./make-distribution.sh --tgz --name 2.4.0 -Pyarn -Phadoop-2.4 -Pspark-ganglia-lgpl -P hive
1.3.1 生成部署包
使用如下命令生成Spark部署包,由于该脚本默认在JDK1.6进行,在开始时会进行询问是否继续,只要选择Y即可
cd /app/complied/spark-1.6.2-mvn/
./make-distribution.sh --tgz --name 2.4.0 -Pyarn -Phadoop-2.4 -Pspark-ganglia-lgpl -P hive
我执行的命令:
./make-distribution.sh --name spark-hadoop-2.4 --tgz --with-tachyon -Phadoop-2.4 -Pyarn -Pspark-ganglia-lgpl -Phive -Dhadoop.version=2.4.0 -Phive -Phive-thriftserver
生成Spark部署包编译了约24个任务,用时大概1小时38分钟。
1.3.2 查看生成结果
生成在部署包位于根目录下,文件名类似于
spark-1.6.1-bin-spark-hadoop-2.4.tgz
我这里只是记录了大概的操作内容,需要具体的内容参考如下链接,关于spark非常详细:
http://www.cnblogs.com/shishanyuan/p/4701646.html