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. OC 属性

    1 属性和实例变量 :属性 ==  实例变量声明 + setter 方法+ getter 方法 在老版本的 OC 语言中,我们需要同时声明属性和底层实例变量,那时,属性是 OC 语言的一个新的机制,并 ...

  2. UDP信息接收与发送

    转载:http://www.cnblogs.com/sunev/archive/2012/08/08/2627247.html 一.摘要 总结基于C#的UDP协议的同步通信. 二.实验平台 Visua ...

  3. 配置vim环境

    <1> 一般不建议更改/etc/vimrc这个文件,因为此文件更改对所有用户生效, 故一般只更改当前用户 即更改文件 vim ~/.vimrc (.表示隐藏文件) <2> 该文 ...

  4. LeetCode-Group Anagrams

    Given an array of strings, group anagrams together. For example, given: ["eat", "tea& ...

  5. LeetCode 【21. Merge Two Sorted Lists】

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

  6. MSP430设置串口波特率的方法

    给定一个BRCLK时钟源,波特率用来决定需要分频的因子N:               N = fBRCLK/Baudrate 分频因子N通常是非整数值,因此至少一个分频器和一个调制阶段用来尽可能的接 ...

  7. 完成一段简单的Python程序,使用函数实现用来判断输入数是偶数还是奇数

    #!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,使用函数实现用来判断偶数和奇数'''def number_deal(a): if a%2==0 ...

  8. 基于Open vSwitch搭建虚拟路由器

    As part of my work in OpenDaylight, we are looking at creating a router using Open vSwitch... Why? W ...

  9. [家里蹲大学数学杂志]第013期2010年西安偏微分方程暑期班试题---NSE,非线性椭圆,平均曲率流,非线性守恒律,拟微分算子

    Navier-Stokes equations 1 Let $\omega$ be a domain in $\bbR^3$, complement of a compact set $\mathca ...

  10. java io流 数据流传输

    java io流 数据流传输 把这段当公式用就可以了 //数据流传输 import java.io.*; public class Index{ public static void main(Str ...