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. WordPress 编辑器没有可视化

    第一次安装wordpress后出现文章编辑器只有一行按钮的问题,即使我安装了其他的编辑插件也是一样只有一行, 解决方法: 原来是再Users->All Users 中勾选了Disable the ...

  2. 【LeetCode】To Lower Case(转换成小写字母)

    这道题是LeetCode里的第709道题. 题目要求: 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: ...

  3. Centos7 编译安装python3

    step1:preparation $ yum install yum-utils make wget gcc $yum-builddep python step2:download $ wget h ...

  4. php.ini配置参数详解

    下面对php.ini中一些安全相关参数的配置进行说明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 ...

  5. jQuery中文文档

    http://www.jquery123.com/ http://www.shifone.cc/

  6. 【前端学习笔记】ajax与php之间的互动

    ajax通常会牵扯到跨域问题,所以我们通常的解决方案是,通过ajax将参数传到后台php文件中 在后台通过php文件进行跨域访问api,再将结果返回到ajax响应中.需要注意一下几点: 1.可以通过& ...

  7. 送外卖(codevs 2800)

    题目描述 Description 有一个送外卖的,他手上有n份订单,他要把n份东西,分别送达n个不同的客户的手上.n个不同的客户分别在1~n个编号的城市中.送外卖的从0号城市出发,然后n个城市都要走一 ...

  8. FGrowth算法

    一:背景 http://www.cnblogs.com/aijianiula/p/5397857.html 上节中,总结了频繁项集挖掘的最基本算法:Apriori算法.这篇文章写下它的改进算法FGro ...

  9. LeetCode OJ--Reverse Linked List II

    http://oj.leetcode.com/problems/reverse-linked-list-ii/ 链表的操作 #include <iostream> using namesp ...

  10. WEB学习-基础知识:列表、表单、div和span、注释、字符实体、HTML废弃标签介绍

    列表 无序列表 无序列表,用来表示一个列表的语义,并且每个项目和每个项目之间,是不分先后的. ul就是英语unordered list,“无序列表”的意思. li 就是英语list item , “列 ...