fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3775343.html

  本文编译方法所支持的hadoop环境是Hadoop-2.2.0,YARN是2.2.0,JAVA版本为1.8.0_11,操作系统Ubuntu14.04

1、spark自带编译方法
注:不同版本的Spark编译命令有所不同,请先查看$SPARK_HOME/make-distribution.sh文件。
使用spark中自带的编译脚本make-distribution.sh (需要先安装Maven ,参见《Maven-3.2.2安装配置》)
cd spark-1.0.1
./make-distribution.sh --hadoop 2.2.0 --with-yarn --tgz
脚本文件make-distribution.sh可以生成部署包,其参数有:

  --tgz: Additionally creates spark-$VERSION-bin.tar.gz
  --hadoop VERSION: Builds against specified version of Hadoop.
  --with-yarn: Enables support for Hadoop YARN.
  --with-hive: Enable support for reading Hive tables.
  --name: A moniker for the release target. Defaults to the Hadoop verison.

如果一切顺利,会在$SPARK_HOME/assembly/target/scala-2.10目录下生成目标文件

(好像Java版本1.8在这里有版本问题?默认在1.6环境下,但我居然编译成功了,呵呵)

(注:之前加了--with-tachyon 我总是编译成功,但生成tgz部署包失败,不知道为什么。今天我在JDK1.7.0_51环境(应该与JDK版本无关)下,去掉了--with-tachyon ,编译成功,并且生成了spark-1.0.1-

bin-2.2.0.tgz部署包)

 在$SPARK_HOME/assembly/target/scala-2.10目录下生成: spark-assembly-1.0.1-hadoop2.2.0.jar
 在$SPARK_HOME/examples/target/scala-2.10目录下生成: spark-examples-1.0.1-hadoop2.2.0.jar
 在$SPARK_HOME/dist/lib目录下生成: spark-assembly-1.0.1-hadoop2.2.0.jar 和 spark-examples-1.0.1-hadoop2.2.0.jar
 在$SPARK_HOME根目录下生成Spark部署包:spark-1.0.1-bin-2.2.0.tgz

编译结果:

2、SBT编译方法
注:不同版本的Spark命令有所变化,请先查看$SPARK_HOME/sbt/sbt文件。
解压源代码并复制到指定目录,然后进入该目录,运行:
tar -zxvf spark-1.0.0.tar.gz
cd spark-1.0.1
SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly
(export http_proxy=http://proxy-server:port  需要添加代理,由于我没有添加代理,所以编译失败了@_@!以后有时间再试试)
3、maven编译(参考官网)
使用Maven构建Spark需要Maven 3.0.4或更新和Java 6 +。
安装好maven3.2.2,并设置环境变量MAVEN_HOME,将$MAVEN_HOME/bin加入PATH变量。
1)您需要配置Maven使用比平时更多的内存设置maven_opts。建议下列设置(Java 1.8以上不需要设置):

export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
如果你没有运行,你可以看到下面的错误:
[INFO] Compiling  Scala sources and  Java sources to /Users/me/Development/spark/core/target/scala-2.10/classes...
[ERROR] PermGen space -> [Help ] [INFO] Compiling Scala sources and Java sources to /Users/me/Development/spark/core/target/scala-2.10/classes...
[ERROR] Java heap space -> [Help ]

2)指定Hadoop版本并编译

由于HDFS对版本不是协议兼容的,如果你想从HDFS读,你需要在你的环境中建立针对特定HDFS版本的Spark。你可以通过“hadoop.version”来做到这。如果未设置,将默认建立针对Hadoop 1.0.4的Spark。请注意,某些建立配置文件是为特定的Hadoop版本要求:
  
对于Hadoop 2.X with YARN,编译:

# Apache Hadoop 2.2.X

mvn -Pyarn -Phadoop-2.2 -Dhadoop.version=2.2.0 -DskipTests clean package

如果是其他版本的YARN和HDFS,则按下面编译:

# Different versions of HDFS and YARN.

mvn -Pyarn-alpha -Phadoop-2.3 -Dhadoop.version=2.3. -Dyarn.version=0.23. -DskipTests clean package

编译结果为:

 
 
 在$SPARK_HOME/assembly/target/scala-2.10目录下生成: spark-assembly-1.0.1-hadoop2.2.0.jar
 在$SPARK_HOME/examples/target/scala-2.10目录下生成: spark-examples-1.0.1-hadoop2.2.0.jar
 

另外,这篇文章的编译讲得也很详细,也可以参考:http://mmicky.blog.163.com/blog/static/1502901542014312101657612/

  以及文章 http://www.cnblogs.com/hseagle/p/3732492.html

Spark源码和编译后的源码、部署包我分享在: http://pan.baidu.com/s/1c0y7JKs 提取密码: ccvy

Spark-1.0.1 的make-distribution.sh编译、SBT编译、Maven编译 三种编译方法的更多相关文章

  1. spark提交任务的三种的方法

    在学习Spark过程中,资料中介绍的提交Spark Job的方式主要有三种: 第一种: 通过命令行的方式提交Job,使用spark 自带的spark-submit工具提交,官网和大多数参考资料都是已这 ...

  2. Spark 1.0.0 横空出世 Spark on Yarn 部署(Hadoop 2.4)

    就在昨天,北京时间5月30日20点多.Spark 1.0.0最终公布了:Spark 1.0.0 released 依据官网描写叙述,Spark 1.0.0支持SQL编写:Spark SQL Progr ...

  3. spark 2.0.0集群安装与hive on spark配置

    1. 环境准备: JDK1.8 hive 2.3.4 hadoop 2.7.3 hbase 1.3.3 scala 2.11.12 mysql5.7 2. 下载spark2.0.0 cd /home/ ...

  4. [b0006] Spark 2.0.1 伪分布式搭建练手

    环境: 已经安装好: hadoop 2.6.4  yarn 参考: [b0001] 伪分布式 hadoop 2.6.4 准备: spark-2.0.1-bin-hadoop2.6.tgz 下载地址:  ...

  5. hive on spark (spark2.0.0 hive2.3.3)

    hive on spark真的很折腾人啊!!!!!!! 一.软件准备阶段 maven3.3.9 spark2.0.0 hive2.3.3 hadoop2.7.6 二.下载源码spark2.0.0,编译 ...

  6. Spark 2.0

    Apache Spark 2.0: Faster, Easier, and Smarter http://blog.madhukaraphatak.com/categories/spark-two/ ...

  7. Spark 1.0 开发环境构建:maven/sbt/idea

    因为我原来对maven和sbt都不熟悉,因此使用两种方法都编译了一下.下面记录一下编译时候遇到的问题.然后介绍一下如果使用IntelliJ IDEA 13.1构建开发环境. 首先准备java环境和sc ...

  8. APACHE SPARK 2.0 API IMPROVEMENTS: RDD, DATAFRAME, DATASET AND SQL

    What’s New, What’s Changed and How to get Started. Are you ready for Apache Spark 2.0? If you are ju ...

  9. Apache Spark 3.0 将内置支持 GPU 调度

    如今大数据和机器学习已经有了很大的结合,在机器学习里面,因为计算迭代的时间可能会很长,开发人员一般会选择使用 GPU.FPGA 或 TPU 来加速计算.在 Apache Hadoop 3.1 版本里面 ...

随机推荐

  1. Error:(1, 0) Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See http://b.android.com/9574

    这个一般是因为你打开的项目所在的目录存在中文,把项目换到全英文目录下就没问题了

  2. OS实验一实验报告

    实验一.命令解释程序的编写实验 专业:商业软件工程   姓名:王泽锴  学号:201406114113 一.实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语 ...

  3. boost -- scoped_lock V.S. mutex lock/unlock —— why scoped_lock is recommanded?

    why scoped_lock is recommanded? 其实,这和RAII idiom变流行是一样的原因:因为你可以确保任何情况下离开执行范围都会解锁mutex. 注意,这不仅仅是说你可能忘记 ...

  4. java json-lib.jar

    import java.util.ArrayList; import java.util.Date; import java.util.List; import net.sf.json.JSONObj ...

  5. PHP 数组 foreach引用导致的bug

    <?php $arr = array('a', 'b', 'c'); foreach($arr as &$v) {} foreach($arr as $v) {} var_dump($a ...

  6. shell问题(转)

    一个同学问我一个问题,说有以下文件内容,要求输出为特定的格式.这里就献丑给出一个处理的方法吧,由于时间关系可能我的答案并不是最好的,但是我尽量将我的答案讲解明白,让你理解处理的方法.如果您有简单明了的 ...

  7. 复制到剪贴板的JS实现--ZeroClipboard (兼解决IE下兼容问题)

    复制到剪贴板的JS实现--ZeroClipboard (兼解决IE下兼容问题) 相信绝大多数人都遇到过这样的功能实现,“复制”或者“复制到剪贴板”这样的功能.但是由于各大浏览器的实现方案不一样,导致几 ...

  8. PHP DES 加解密

    代码很简单,如下: <?php $key = 'very important data'; function jiami($key, $str) { /* Open module, and cr ...

  9. phonegap文件,目录操作以及网络上传,下载文件(含demo)

    正在做一个跨平台的应用,需要使用phonegap进行文件的一些基本操作. 需求如下:可以选择本地图片,或者从相机选择图片,并进行显示在本地,然后上传到服务器,以及可以从服务器下载图片显示出来,如果本地 ...

  10. ISO 14229 简介 转载

    作者:autogeek 原文链接:http://www.cnblogs.com/autogeek/p/4458591.html 前言 由于工作中经常用到ISO-14229,因此决定对该协议做个总体介绍 ...