编译其实是按照官方文档进行的,比较简单,文档地址是:http://spark.apache.org/docs/latest/building-spark.html

编译命令最终是:

先要执行:

export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m" 

然后再执行:

build/mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package

解释一下:

环境背景:Linux/CentOS

build是spark源代码根目录中的目录

机器中一定是要安装maven啦

-Pyarn -Phadoop-2.4:  可以根据实际情况来选择是否需要支持yarn和hdfs。 然后为他们进行版本的选择。 我这里yarn和hdfs都是2.4版本,所以只填写一次就行。

-DskipTests 使用后代表是不需要再执行测试用例

clean package 就是清空历史编译后文件,并重新进行编译。

另外,编译时是需要下载许多许多的依赖包的,所以一定要用国内的maven映射点,例如是这样:

<mirror>
<id>nexus-osc</id>
<mirrorOf>*</mirrorOf>
<name>Nexus osc</name>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>

补充一下:

1、如果编译时断掉后,那么重新再开始编译即可。

2、 spark1.3.1中对于2.x只支持2.2,2.3,2.4四个版本。 更高版本和更低版本是不支持的。

2015-04-30 15:00:00 再次补充一下:

编译时MQTT总是编译不过去,网上找了许久也没有找到解决办法,报错信息如下:

[ERROR] Failed to execute goal on project spark-streaming-mqtt_2.10: Could not resolve dependencies for project org.apache.spark:spark-streaming-mqtt_2.10:jar:1.3.1: Failure to find org.eclipse.paho:org.eclipse.paho.client.mqttv3:jar:1.0.1 in http://maven.oschina.net/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of nexus-osc has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :spark-streaming-mqtt_2.10

似乎是spark-streaming-mqtt_2.10这个没有找到,我找了找好象也没有找到。

最后反正我也用不到mqtt,所以就将pom中的mqtt删除了。即,将根目录下的pom.xml中的

<module>external/mqtt</module>

给注释掉了

补充,如何生成部署包:

参考的http://blog.csdn.net/book_mmicky/article/details/25714445

执行

./make-distribution.sh --tgz --with-tachyon -Phadoop-2.4 -Pyarn -Phive

生成的文件在根目录,拿该文件部署即可

再补充一下,部署包执行上边的命令时总是生成失败。 但把--with-tachyon去掉就能成功。 奇怪了,我去读一下代码看看。

再再补充一下,这是我编译的部署包,spark1.3.1然后是to hadoop2.4.0的, 没有把tachyon打进去,因为选择打进去后发现部署包出不来,猜测是mak-distribution.sh出现了错误

http://pan.baidu.com/s/1jGKin2Y

再再再补充一下,这是我编译的hadoop2.4.0的部署包

http://pan.baidu.com/s/1i329zt7

对于Spark1.3进行编译的更多相关文章

  1. Spark1.4.1 编译与安装

    1.下载下载地址:http://spark.apache.org/downloads.html 选择下载源码 2.源码编译1)解压tar -zxvf spark-1.4.1.tgz2.编译spark有 ...

  2. spark1.2.0编译

    spark 有三种编译方式:SBT.MAVEN.make-distribution.sh.SBT.MAVEN两种方式打出来的包比较大,不适合部署使用.因此我们通常使用第三种方式打包. ./make-d ...

  3. Spark-1.5.2之改动源代码后的自己定义打包编译

    Spark-1.5.2之自己定义打包编译,基于当前最新版本号的spark源代码1.5.2版本号. 自己编译spark是改动spark源代码的必备条件,改动的源代码自己定义打包生效后才干公布到生产环境中 ...

  4. Spark 入门

    Spark 入门 目录 一. 1. 2. 3. 二. 三. 1. 2. 3. (1) (2) (3) 4. 5. 四. 1. 2. 3. 4. 5. 五.         Spark Shell使用 ...

  5. sparkSQL1.1入门

    http://blog.csdn.net/book_mmicky/article/details/39288715 2014年9月11日,Spark1.1.0忽然之间发布.笔者立即下载.编译.部署了S ...

  6. spark1.3编译过程中遇到的一个坑

    在编译spark1.3.0时: export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m&q ...

  7. Spark-1.0.1 的make-distribution.sh编译、SBT编译、Maven编译 三种编译方法

    fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3775343.html 本文编译方法所支持的hadoop环境是Hadoop-2.2.0, ...

  8. 解决maven编译spark1.5报错问题

    spark1.5发布了,赶紧去下了源码尝鲜 git clone git://github.com/apache/spark.git -b branch-1.5 输入命令进行编译 ./make-dist ...

  9. Spark-1.X编译构建及配置安装

    前提条件(环境要求) jdk版本:1.7+ scala版本:1.10.4+ maven版本:3.3.3+ 本博客中使用的软件版本 spark版本:spark-1.6.1.tar.gz(源码) jdk版 ...

随机推荐

  1. msmms (二) sms与mms 简述!

    mms 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . MMS是英文缩写,它可以是Membership Management System的缩写,中文译名为会员管理系统.也可以是M ...

  2. linux用命令行来执行php程序

    <?php $start = microtime(true); for($i=0 ; $i <10000 ; $i ++){ // echo '正在执行第'.$i.'个操作! '.PHP_ ...

  3. dedecms发布文章时多个Tag间分割逗号自动变成英文逗号

    dedecms发布文章时经常会添加多个Tag,我们输入汉字时总是喜欢使用全角的逗号,那么有没有办法使用JS脚本把输入的Tag间中文逗号变成英文逗号呢? dedecms发布文章时多个Tag间分割逗号自动 ...

  4. HDU 4915 Parenthese sequence

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4915 解题报告:从前往后遍历一次,每次判断')'的数目是不是满足 n < (i +1)/ 2,从 ...

  5. Unity3d Static 静态批处理和动态批处理

    表示物体时静态的,多用于静止不动的物体,此外static有多种,有的用于烘焙,有的用于遮挡剔除 物理效果是rigidbody组件,和这个没关系,用transform.Translate 无法移动,因为 ...

  6. iso socket基础2

    iPhone socket 编程之BSD Socket篇 收藏在进行iPhone网络通讯程序的开发中,不可避免的要利用Socket套接字.iPhone提供了Socket网络编程的接口CFSocket, ...

  7. Numeric Validation

    Numeric Inputs Numbers are even easier to validate than text. For number input types, the HTML5 spec ...

  8. Coursera台大机器学习技法课程笔记03-Kernel Support Vector Machine

    这一节讲的是核化的SVM,Andrew Ng的那篇讲义也讲过,讲的也不错. 首先讲的是kernel trick,为了简化将低维特征映射高维特征后的计算,使用了核技巧.讲义中还讲了核函数的判定,即什么样 ...

  9. /lib /usr/lib /usr/local/lib区别

    昨天问我/usr/lib 和/usr/local/lib 我仅记得一个是系统的,一个是用户的,于是今天查了查,有两篇文章介绍的不错,usr 很多人都认为是user缩写,其实不然,是unix syste ...

  10. 【Hibernate】Hibernate系列2之Session详解

    Session详解 2.1.概述-一级缓存 2.2.操作session缓存方法 2.3.数据库隔离级别 2.4.持久化状态 2.5.状态转换 2.6.存储过程与触发器