Spark-1.5.2之改动源代码后的自己定义打包编译
Spark-1.5.2之自己定义打包编译,基于当前最新版本号的spark源代码1.5.2版本号。
自己编译spark是改动spark源代码的必备条件,改动的源代码自己定义打包生效后才干公布到生产环境中。
本地具体介绍Spark-1.5.2编译的过程
1、下载Spark-1.5.2的源代码
在官网下载,选择 一个合适自己网络的镜像
wget http://mirrors.noc.im/apache/spark/spark-1.5.2/spark-1.5.2.tgz
解压代码
tar zxfv spark-1.5.2.tgz
2、安装maven打包工具
首先说,官网一般推荐使用sbt, sbt比較适合于编译scala的project,maven一般适合于java的project。可是。sbt的源常常訪问不到,甚至要翻*,你们懂得。
maven的源基本国内都能訪问。
wget http://apache.dataguru.cn/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
解压安装包
tar zxfv apache-maven-3.3.9-bin.tar.gz
环境变量设置。依据自己安装的路径来配置
export MAVEN_HOME=/opt/software/spark/apache-maven-3.3.9
export PATH=$PATH:$MAVEN_HOME/bin
export MAVEN_OPTS="-Xmx3g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
须要设置maven的jvm參数,打包spark还是蛮用内存的。
此外还需配置java与scala的环境变量
#java
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export JAVA_BIN=$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_LIBRARY_PATH=/opt/cloudera/parcels/CDH/lib/hadoop/lib/native #scala
export SCALA_HOME=/opt/modules/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin
3、打包编译Spark-1.5.2
正式打包前,我们做一个事情,改动源代码,比較简单的改动了
/** Print a welcome message */
override def printWelcome() {
import org.apache.spark.SPARK_VERSION
echo("""Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version %s compiled by kwu 20160101
/_/
""".format(SPARK_VERSION))
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
把三个路径下的启动scala文件的提示改动了
进入源代码文件夹,运行打包命令
cd spark-1.5.2
./make-distribution.sh --tgz -Phadoop-2.6 -Pyarn -DskipTests -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver
基于hadoop2.6的打包编译,并添加了hive的支持。然后就是漫长的等待,比我们当时编译hadoop源代码还要久。最后 出现
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
最终所有SUCCESS后。不要看上面显示是11分钟。实际上中间因为网络问题。失败了好几次。不断地重试成功了。
注意,假设某些jar包下载不了。能够手动到提示的maven路径下下载。放到路径下:
/root/.m2
添加打包编译的成功率
最后执行后执行一下自己编译的Spark吧
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
看到没,打上自己的标签了。
最新文章
- javax.net.ssl.SSLHandshakeException(Cas导入证书)
- 2014年7月份第2周51Aspx源码发布详情
- python configparser模块
- 【python网络编程】使用rsa加密算法模块模拟登录新浪微博
- POJ 1195 二维树状数组
- 9、java中的final关键字
- 手把手教你编写一个具有基本功能的shell(已开源)
- java中String类学习
- Codeforces Round #363 (Div. 2)->;C. Vacations
- Jquery ajax basic
- linux去掉svn里记住的用户名密码
- linux用户键拷贝文件
- proc/net/dev实时网速统计实例【转】
- 一台电脑,两个及多个git账号配置
- 关于Sqlite的一个demo
- hive基本结构与数据存储
- Java开发环境配置(Win7 64位系统/server 2008)
- 批处理文件中获取当前所在路径的几种方法,以及写文件到txt
- 洛谷P4495 [HAOI2018]奇怪的背包(数论)
- Framework配置错误