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="">

看到没,打上自己的标签了。

Spark-1.5.2之改动源代码后的自己定义打包编译的更多相关文章

  1. GPS-Graph Processing System 改动源代码经验总结 (四)

    HamaWhite原创,转载请注明出处.欢迎大家增加Giraph 技术交流群: 228591158 本文目的:在改动GPS源代码后,具体描写叙述怎样编译和分发到各Worker节点上. 以下以Graph ...

  2. github怎样改动源代码并进行提交方法小结

    /*********************************************************************  * Author  : Samson  * Date   ...

  3. Android studio升级后原有项目无法正常编译运行问题

    Android studio工具升级后Gradle版本问题 背景 升级AndroidStudio到最新版本后,原来可正常编译输出AndroidTest的项目无法正常编译通过. 原因 升级后的Andro ...

  4. 【Spark】Stage生成和Stage源代码浅析

    引入 上一篇文章<DAGScheduler源代码浅析>中,介绍了handleJobSubmitted函数,它作为生成finalStage的重要函数存在.这一篇文章中,我将就DAGSched ...

  5. 改动分区后,导致linux上不了

    /*************************** *Author : 林旭东    *problem:基于分区改动出现的问题(1) *calender: 15/07/10   ******** ...

  6. rac环境改动spfile后遭遇ora-29250小例

    原创作品.出自 "深蓝的blog" 博客.转载时请务必注明出处,否则有权追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/ar ...

  7. 虚拟现实-VR-UE4-编译源代码后,无法运行

    情况是这个样,在一开始我编译后,是可以运行,但是当我重新做系统后,再次运行时,每次都是到加载的18%的时候提示了如下错误 具体解决方法还没有找到,正在努力找中.........,会后续更新 同时希望有 ...

  8. jQuery -&gt; 怎样【先创建、再改动、后加入】 DOM元素

    怎样一气呵成地.on the fly地操作DOM元素呢? 比如顺序运行[创建]-> [改动]-> [加入]三个动作. 因为jQuery支持链式操作,事实上就是设计模式的builder模式, ...

  9. Codeblocks 等软件 修改源代码后 不能立即执行的解决办法||exe文件删除慢

    不懈地奋斗了两天,终于找到原因了. 记录如下 症状: Codeblocks .Visual Studio 都出现此问题:修改源代码 无法立即执行 ,就是:cannot open output file ...

随机推荐

  1. NYOJ 219 An problem about date

    An problem about date 时间限制:2000 ms  |  内存限制:65535 KB 难度:2   描述 acm的iphxer经常忘记某天是星期几,但是他记那天的具体日期,他希望你 ...

  2. Codeforces Round #265 (Div. 1)

    D. World of Darkraft - 2 time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  3. BZOJ 3196 二逼平衡树 ——树套树

    [题目分析] 全靠运气,卡空间. xjb试几次就过了. [代码] #include <cmath> #include <cstdio> #include <cstring ...

  4. hdu 2100

    #include<stdio.h> #include<string.h> char a[300],b[300]; int a1[300],b1[300]; int main() ...

  5. spring5响应式编程

    1.Spring5新特性    2.响应式编程响应式编程:非阻塞应用程序,借助异步和事件驱动还有少量的线程垂直伸缩,而非横向伸缩(分布式集群)当Http连接缓慢的时候,从数据库到Http数据响应中也会 ...

  6. C 语言中可以调用命令行指令的 system()函数

    C语言有一个system函数(在<stdlib.h>头中,C++则为<cstdlib>头),可以用来调用终端命令.原型如下: int system(const char *cm ...

  7. jenkins使用流程

    jenkins使用流程 看下面那个连接的吧. http://www.cnblogs.com/zz0412/p/jenkins02.html 1.设置git库 2.点击add添加github用户名.密码 ...

  8. Infinite monkey theorem(hdu 3689)

    题意:问随机生成一个长度为m(m<=1000)长度的字符串,出现某个子串s的概率是多少. /* KMP+DP 设f[i][j]表示A生成到第i位,此时B串匹配到第j位的概率. 转移方程为f[i+ ...

  9. 文艺平衡树(bzoj 3223)

    Description   您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2  ...

  10. 【Codeforces Round #503 (Div. 2)】

    A:https://www.cnblogs.com/myx12345/p/9843198.html B:https://www.cnblogs.com/myx12345/p/9843245.html ...