编译spark源码并导入到IDEA中
一、 目的
1. 根据需要自定义编译spark相应的模块
2. 修改spark源码并重新编译spark
二、 环境需求
1. 操作系统为CentOS6.x 64bit,安装了桌面
2. 内存4G以上最佳
3. 下载IDEA的Linux版本,用于修改Spark源码
三、 步骤
1. 安装JDK
2. 安装Maven
3. 下载spark源码
教学中会使用spark的1.6.1版本和1.3.1版本,需要下载这两版本的源码
4. 解压源码包
tar -zxvf spark-1.6.1.tgz -C /usr/local/src/
5. 用Maven编译源码
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
cd /usr/local/src/spark-1.6.1/
mvn clean package -Phadoop-2.6 -Dhadoop.version=2.6.4 -Phive -Phive-thriftserver -Pyarn -DskipTests
注意:由于编译过程Maven需要下载依赖,编译的所在机器必须可以访问网络,甚至需要翻墙才可以编译成功,我已经下载好了编译所需要的Maven依赖,只需要将其上传到Linux系统上,然后解压到当前用户的.m2目录即可
tar -zxvf maven_repo.tgz -C ~/.m2
然后在执行编译
6. 将需要修改的Spark模块导入到IDEA中
1. 点击导入project
2. 选择要导入的模块,然后点击OK
3. 选择导入Maven项目,然后点击next
4. 配置JDK
5. 点击next和finish即可
6. 修改spark的源码,然后编译打包
./make-distribution.sh –tgz -Phadoop-2.6 -Dhadoop.version=2.6.4 -Phive -Phive-thriftserver -Pyarn -DskipTests
CentOS6.7-64bit编译spark-1.6.1:
tar -zxvf spark-1.6.1.tgz -C /usr/local/src/
cd /usr/local/src/spark-1.6.1/
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
mvn clean package -Phadoop-2.6 -Dhadoop.version=2.6.4 -Phive -Phive-thriftserver -Pyarn -DskipTests
./make-distribution.sh --tgz -Phadoop-2.6 -Dhadoop.version=2.6.4 -Phive -Phive-thriftserver -Pyarn -DskipTests
CentOS6.7-64bit编译spark-1.3.1
cd spark-1.3.1
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
mvn clean package -Phadoop-2.6 -Dhadoop.version=2.6.4 -Phive -Phive-thriftserver -Pyarn -DskipTests
./make-distribution.sh --tgz -Phadoop-2.6 -Dhadoop.version=2.6.4 -Phive -Phive-thriftserver -Pyarn -DskipTests