1》基础环境准备:

jdk1.8.0_101
maven 3.3.9
scala2.11.8

安装好上述软件,配置好环境变量,并检查是否生效。

2》配置maven:intellij idea maven配置及maven项目创建

3》设置maven编译内存

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

4.》使用maven命令编译源码。

mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7. -Phive -Phive-thriftserver -DskipTests

5》使用spark自带打包脚本打包(实际上该脚本调用上述的mvn命令,所以可以直接跳过第4步,当然如果只是调试用,不用打成压缩包,则直接到第4步即可)。

首先修改脚本:在spark源码包根目录下执行如下命令,

vi dev/make-distribution.sh
注释掉以下内容:位于文件中的120~136行。 #VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ >/dev/null | grep -v "INFO" | tail -n )
#SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ >/dev/null\
# | grep -v "INFO"\
# | tail -n )
#SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ >/dev/null\
# | grep -v "INFO"\
# | tail -n )
#SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ >/dev/null\
# | grep -v "INFO"\
# | fgrep --count "<id>hive</id>";\
# # Reset exit status to , otherwise the script stops here if the last grep finds nothing\
# # because we use "set -o pipefail"
# echo -n) 添加以下内容: VERSION=2.3.
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.7.
SPARK_HIVE=

6》修改后保存退出。在源码包根目录指定以下命令:

./dev/make-distribution.sh –name 2.7.3 –tgz -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -Phadoop-provided -Phive -Phive-thriftserver -DskipTests

如果要编译对应的cdh版本,需要在源码的根目录下的pom文件中添加如下的仓库。
添加 cdh的仓库。

<repository>
<id>clouders</id>
<name>clouders Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>

命令解释:

--name 2.7.3  ***指定编译出来的spark名字,name=

--tgz ***压缩成tgz格式

-Pyarn \ ***支持yarn平台

-Phadoop-2.7 \  -Dhadoop.version=2.7.3 \ ***指定hadoop版本为2.7.3

-Phive -Phive-thriftserver \ ***支持hive

-DskipTests clean package ***跳过测试包

使用maven&&make-distribution.sh编译打包spark源码的更多相关文章

  1. 【源码编译】spark源码编译

    本文采用cdh版本spark-1.6.0-cdh5.12.0 1.源码包下载 2.进入根目录编译,编译的方式有2种 maven mvn clean package \ -DskipTests -Pha ...

  2. Spark源码的编译过程详细解读(各版本)

    说在前面的话   重新试多几次.编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,按ctrl+c,重新运行编译命令. 如果出现缺少了某个文件的情况,则要先清理maven(使用命 ...

  3. Spark源码的编译过程详细解读(各版本)(博主推荐)

    不多说,直接上干货! 说在前面的话   重新试多几次.编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,按ctrl+c,重新运行编译命令.  如果出现缺少了某个文件的情况,则要 ...

  4. window环境下使用sbt编译spark源码

    前些天用maven编译打包spark,搞得焦头烂额的,各种错误,层出不穷,想想也是醉了,于是乎,换种方式,使用sbt编译,看看人品如何! 首先,从官网spark官网下载spark源码包,解压出来.我这 ...

  5. idea下关联spark源码环境(转)

    0.环境: java 1.8 scala 2.11.8 maven 3.5.0 idea 2017 spark 2.2.0 1完成以下配置 java环境变量 scala环境变量 maven setti ...

  6. Spark笔记--使用Maven编译Spark源码(windows)

    1. 官网下载源码 source code,地址: http://spark.apache.org/downloads.html 2. 使用maven编译: 注意在编译之前,需要设置java堆大小以及 ...

  7. Spark 学习(三) maven 编译spark 源码

    spark 源码编译 scala 版本2.11.4 os:ubuntu 14.04 64位 memery 3G spark :1.1.0 下载源码后解压 1 准备环境,安装jdk和scala,具体参考 ...

  8. 编译Spark源码

    Spark编译有两种处理方式,第一种是通过SBT,第二种是通过Maven.作过Java工作的一般对于Maven工具会比较熟悉,这边也是选用Maven的方式来处理Spark源码编译工作. 在开始编译工作 ...

  9. 使用 IntelliJ IDEA 导入 Spark源码及编译 Spark 源代码

    1. 准备工作 首先你的系统中需要安装了 JDK 1.6+,并且安装了 Scala.之后下载最新版的 IntelliJ IDEA 后,首先安装(第一次打开会推荐你安装)Scala 插件,相关方法就不多 ...

随机推荐

  1. python第十四课--排序及自定义函数之自定义函数(案例四)

    整理:4中最常见的自定义函数模型1).无参无返回值2).无参有返回值3).有参无返回值4).有参有返回值 #定义无参无返回值自定义函数 def func1(): print('hello method ...

  2. 20165318 2017-2018-2 《Java程序设计》第二周学习总结

    20165318 2017-2018-2 <Java程序设计>第二周学习总结 教材学习内容总结 本周学习了第二章和第三章的内容,掌握了Java中基本数据类型.数组.运算符.表达式和语句等方 ...

  3. 【转】numpy.random.randn()与rand()的区别

    转自: https://blog.csdn.net/u010758410/article/details/71799142 numpy中有一些常用的用来产生随机数的函数,randn()和rand()就 ...

  4. Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getUser' in class org.uncommons.reportng.ReportMetadata threw exception class java.net.UnknownHostException :

    Running TestSuite [TestNG] [WARN] Ignoring duplicate listener : org.uncommons.reportng.HTMLReporter ...

  5. <摘录>字节对齐与结构体大小

    说明: 结 构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题.这些问题在平时编程的时候也确实不怎么用到,但在一 些笔试面试题目中出是常常出现,对sizeo ...

  6. Mac OS X 命令行用户应当知道的八个终端工具

    原文链接:Eight Terminal Utilities Every OS X Command Line User Should Know OS X  的Terminal 终端开辟了强大的UNIX实 ...

  7. Linux Shell常用技巧(一)

    一.    特殊文件: /dev/null和/dev/tty Linux系统提供了两个对Shell编程非常有用的特殊文件,/dev/null和/dev/tty.其中/dev/null将会丢掉所有写入它 ...

  8. Blktrace原理简介及使用

    Blktrace简介 Blktrace是一个用户态的工具,用来收集磁盘IO信息中当IO进行到块设备层(block层,所以叫blk trace)时的详细信息(如IO请求提交,入队,合并,完成等等一些列的 ...

  9. lua函数定义

    FuncState proto结构数组保存函数原型信息;prev保存父函数体指针:actvar保存定义的局部变量:upvalues保存upvalue Lua源码中,专门有一个结构体FuncState用 ...

  10. 字符串Hash/树Hash学习笔记

    哈希 Tags:字符串 作业部落 评论地址 一.概述 百度百科: 散列表(Hash table/哈希表),是根据关键码值(Key value)而直接进行访问的数据结构. 哈希表常用于比较两个字符串是否 ...