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. linux php redis扩展的安装和redis服务的安装

    一.php redis扩展的安装 wget http://pecl.php.net/get/redis-2.2.7.tgztar zvxf redis-2.2.7.tgzcd redis-2.2.7/ ...

  2. 在笔记本电脑开通无线WIFI

    1.Windows + R启动运行,输入services.msc进入服务 2.在服务中将Security Center服务从自动启动转为禁止启动 3.在服务中将Windows Firewall的启动类 ...

  3. 《统计推断(Statistical Inference)》读书笔记——第2章 变换与期望

    第二章引入了两个重要问题,随机变量的期望和随机变量的变换.期望又引申出“矩”的概念,矩是统计学理论分析的一个重要关键词,而随机变量的变换是研究复杂统计现象的重要工具.下面是这一章的思维导图

  4. 桥接模式(Bridge)

    桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化.Bridge 模式把角色之间的继承关系改为了耦合的关系,从而使这两者可以从容自若的各自独立的变化: 在以下的情况下应当使 ...

  5. css transform skew变换

    两个参数,x-保持纵坐标不变,所有点旋转逆时针旋转x度,y-横坐标不变所有点顺时针旋转y度

  6. Jocket

    https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/diagnosTOC.html https://blo ...

  7. PHP、JAVA、C#、Object-C 通用的DES加密

    PHP.JAVA.C#.Object-C 通用的DES加密 PHP: 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 ...

  8. python unicode字节串转成中文问题

    如题,其实我的问题很简单,就是在写爬虫的时候拿到网页的信息包含类似“\u65b0\u6d6a\u5fae\u535a\u6ce8\u518c”的字符串,实际上这是unicode的中文编码,对应的中文为 ...

  9. How to Allow MySQL Client to Connect to Remote MySql

    How to Allow MySQL Client to Connect to Remote MySQ By default, MySQL does not allow remote clients ...

  10. SQL语句统计每天、每月、每年的 数据

    SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月 ...