本文转自大数据躺过的坑博客园博客,原文链接:xxxxx,如需转载请自行联系原作者说在前面的话

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

Spark源码编译的3大方式 

  1、Maven编译

  2、SBT编译  (暂时没)

  3、打包编译make-distribution.sh

前言

   Spark可以通过SBT和Maven两种方式进行编译,再通过make-distribution.sh脚本生成部署包。  

   SBT编译需要安装git工具,而Maven安装则需要maven工具,两种方式均需要在联网 下进行。

    尽管maven是Spark官网推荐的编译方式,但是sbt的编译速度更胜一筹。因此,对于spark的开发者来说,sbt编译可能是更好的选择。由于sbt编译也是基于maven的POM文件,因此sbt的编译参数与maven的编译参数是一致的。

心得

   有时间,自己一定要动手编译源码,想要成为高手和大数据领域大牛,前面的苦,是必定要吃的。

   无论是编译spark源码,还是hadoop源码。新手初次编译,一路会碰到很多问题,也许会花上个一天甚至几天,这个是正常。把心态端正就是!有错误,更好,解决错误,是最好锻炼和提升能力的。

更不要小看它们,能碰到是幸运,能弄懂和深入研究,之所以然,是福气。

各大版本简介

  1、Apache版------可自己编译,也可采用预编译的版本

 2、CDH版---------无需自己编译

Cloudera Manager安装之利用parcels方式安装3节点集群(包含最新稳定版本或指定版本的安装)(添加服务)

 3、HDP版----------无需自己编译

Ambari安装部署搭建hdp集群(图文分五大步详解)(博主强烈推荐)

主流是这3大版本,其实,是有9大版本。CDH的CM是要花钱的,当然它的预编译包,是免费的。

hadoop/spark源码的下载方式:

  1、官网下载

  2、Github下载(仅source code)

    

以下是从官网下载:

以下是Github下载(仅source code)

CDH的下载

http://archive-primary.cloudera.com/cdh5/cdh/5/

HDP的下载

http://zh.hortonworks.com/products/

好的,那我这里就以,Githud为例。

准备Linux系统环境(如CentOS6.5)

********************************************************************************

*  思路流程:

*      第一大步:在线安装git

*      第二大步:创建一个目录来克隆spark源代码(mkdir -p /root/projects/opensource)

*      第三大步:切换分支

*      第四大步:安装jdk1.7+

*      第五大步:安装maven

*      第六大步:看官网,跟着走

*      第七大步:通过MVN下载对应的包

********************************************************************************

当然,可以参考官网给出的文档,

http://spark.apache.org/docs/1.6.1/building-spark.html

第一大步:在线安装git(root 用户下)

  yum install git       (root用户)

  或者

  Sudo yum install git (普通用户)

[root@Compiler ~]# yum install git

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

* base: mirrors.cug.edu.cn

* extras: mirrors.cug.edu.cn

* updates: mirrors.cug.edu.cn

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package git.x86_64 0:1.7.1-4.el6_7.1 will be installed

--> Processing Dependency: perl-Git = 1.7.1-4.el6_7.1 for package: git-1.7.1-4.el6_7.1.x86_64

--> Processing Dependency: perl(Git) for package: git-1.7.1-4.el6_7.1.x86_64

--> Processing Dependency: perl(Error) for package: git-1.7.1-4.el6_7.1.x86_64

--> Running transaction check

---> Package perl-Error.noarch 1:0.17015-4.el6 will be installed

---> Package perl-Git.noarch 0:1.7.1-4.el6_7.1 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================================================================

Package                                        Arch                                       Version                                              Repository                                Size

===============================================================================================================================================================================================

Installing:

git                                            x86_64                                     1.7.1-4.el6_7.1                                      base                                     4.6 M

Installing for dependencies:

perl-Error                                     noarch                                     1:0.17015-4.el6                                      base                                      29 k

perl-Git                                       noarch                                     1.7.1-4.el6_7.1                                      base                                      28 k

Transaction Summary

===============================================================================================================================================================================================

Install       3 Package(s)

Total download size: 4.7 M

Installed size: 15 M

Is this ok [y/N]: y

Downloading Packages:

(1/3): git-1.7.1-4.el6_7.1.x86_64.rpm                                                                                                                                   | 4.6 MB     00:01

(2/3): perl-Error-0.17015-4.el6.noarch.rpm                                                                                                                              |  29 kB     00:00

(3/3): perl-Git-1.7.1-4.el6_7.1.noarch.rpm                                                                                                                              |  28 kB     00:00

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Total                                                                                                                                                          683 kB/s | 4.7 MB     00:06

warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Importing GPG key 0xC105B9DE:

Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>

Package: centos-release-6-5.el6.centos.11.1.x86_64 (@anaconda-CentOS-201311272149.x86_64/6.5)

From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Is this ok [y/N]: y

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : 1:perl-Error-0.17015-4.el6.noarch                                                                                                                                           1/3

Installing : git-1.7.1-4.el6_7.1.x86_64                                                                                                                                                  2/3

Installing : perl-Git-1.7.1-4.el6_7.1.noarch                                                                                                                                             3/3

Verifying  : perl-Git-1.7.1-4.el6_7.1.noarch                                                                                                                                             1/3

Verifying  : 1:perl-Error-0.17015-4.el6.noarch                                                                                                                                           2/3

Verifying  : git-1.7.1-4.el6_7.1.x86_64                                                                                                                                                  3/3

Installed:

git.x86_64 0:1.7.1-4.el6_7.1

Dependency Installed:

perl-Error.noarch 1:0.17015-4.el6                                                              perl-Git.noarch 0:1.7.1-4.el6_7.1

Complete!

[root@Compiler ~]#

第二大步:创建一个目录克隆spark源代码

  mkdir -p /root/projects/opensource

  cd /root/projects/opensource

  git clone https://github.com/apache/spark.git

[root@Compiler ~]# pwd

/root

[root@Compiler ~]# mkdir -p /root/projects/opensource

[root@Compiler ~]# cd projects/opensource/

[root@Compiler opensource]# pwd

/root/projects/opensource

[root@Compiler opensource]# ls

[root@Compiler opensource]#

[root@Compiler opensource]# pwd

/root/projects/opensource

[root@Compiler opensource]# git clone https://github.com/apache/spark.git

Initialized empty Git repository in /root/projects/opensource/spark/.git/

remote: Counting objects: 403059, done.

remote: Compressing objects: 100% (13/13), done.

remote: Total 403059 (delta 4), reused 1 (delta 1), pack-reused 403045

Receiving objects: 100% (403059/403059), 182.79 MiB | 896 KiB/s, done.

Resolving deltas: 100% (157557/157557), done.

[root@Compiler opensource]# ls

spark

[root@Compiler opensource]# cd spark/

[root@Compiler spark]#

其实就是,对应着,如下网页界面。

[root@Compiler spark]# pwd

/root/projects/opensource/spark

[root@Compiler spark]# ll

total 280

-rw-r--r--.  1 root root  1804 Sep  2 03:53 appveyor.yml

drwxr-xr-x.  3 root root  4096 Sep  2 03:53 assembly

drwxr-xr-x.  2 root root  4096 Sep  2 03:53 bin

drwxr-xr-x.  2 root root  4096 Sep  2 03:53 build

drwxr-xr-x.  8 root root  4096 Sep  2 03:53 common

drwxr-xr-x.  2 root root  4096 Sep  2 03:53 conf

-rw-r--r--.  1 root root   988 Sep  2 03:53 CONTRIBUTING.md

drwxr-xr-x.  3 root root  4096 Sep  2 03:53 core

drwxr-xr-x.  5 root root  4096 Sep  2 03:53 data

drwxr-xr-x.  6 root root  4096 Sep  2 03:53 dev

drwxr-xr-x.  9 root root  4096 Sep  2 03:53 docs

drwxr-xr-x.  3 root root  4096 Sep  2 03:53 examples

drwxr-xr-x. 15 root root  4096 Sep  2 03:53 external

drwxr-xr-x.  3 root root  4096 Sep  2 03:53 graphx

drwxr-xr-x.  3 root root  4096 Sep  2 03:53 launcher

-rw-r--r--.  1 root root 17811 Sep  2

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

  1. 初步了解mac下C源码的编译过程

    初步了解mac下C源码的编译过程 参考: 请问Mac OS X (10.9.1)下创建和使用动态链接库的方法 cc.gcc.g++.CC的区别概括 - 今晚打酱油_ - 博客园 Linux 下 的 c ...

  2. v57.02 鸿蒙内核源码分析(编译过程) | 简单案例说透中间过程 | 百篇博客分析HarmonyOS源码

    子畏于匡,颜渊后.子曰:"吾以女为死矣."曰:"子在,回何敢死?" <论语>:先进篇 百篇博客系列篇.本篇为: v57.xx 鸿蒙内核源码分析(编译 ...

  3. Spark源码打包编译的过程

    前言 上篇文章介绍了下 安装sbt环境 启动scala项目 安装SBT环境运行Scala项目 为什么要弄这个 因为我本来是想对spark源码编译部署 spark是用scala语言编译的 spark源码 ...

  4. OpenBLAS简介及在Windows7 VS2013上源码的编译过程

    OpenBLAS(Open Basic Linear Algebra Subprograms)是开源的基本线性代数子程序库,是一个优化的高性能多核BLAS库,主要包括矩阵与矩阵.矩阵与向量.向量与向量 ...

  5. crosswalk源码 的编译过程

    crosswalk 官方:https://github.com/crosswalk-project 编译环境 Ubuntu 16.04 crosswalk 支持的Ubuntu版本 12.04 .14. ...

  6. 微信短视频去水印小程序搭建教程(含源码),超级详细哦,支持流量主的

    话不多说,先看看效果,感觉OK,再往下看! 下面进入正式教程阶段 1.域名添加解析 2.宝塔后台创建站点及数据库 不懂的可以看我以前的文章,这里就不详细多说了. 小程序,其实也就是一种网页运用,如果你 ...

  7. Intel TBB简介及在Windows7 VS2013上源码的编译过程

    Intel TBB(Intel Threading Building Blocks)是Intel线程构建块开源库,它的License是Apache 2.0. Intel TBB是一种用于并行编程的基于 ...

  8. Windows + IDEA + SBT 打造Spark源码阅读环境

    Spark源码阅读环境的准备 Spark源码是有Scala语言写成的,目前,IDEA对Scala的支持要比eclipse要好,大多数人会选在在IDEA上完成Spark平台应用的开发.因此,Spark源 ...

  9. v50.03 鸿蒙内核源码分析(编译环境) | 编译鸿蒙防掉坑指南 | 百篇博客分析HarmonyOS源码

    颜渊死.子曰:"噫!天丧予!天丧予!" <论语>:先进篇 百篇博客系列篇.本篇为: v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙防掉坑指南 编译构建相关篇 ...

最新文章

  1. Oralce中的to_date()函数
  2. Useful Shell Option – extglob 和 shopt命令
  3. excel宏转txt替换强制换行符_三个步骤学会用EXCEL批量导入anki题库
  4. 关于Jquery中ajax方法data参数用法
  5. BootstrapTable-加载数据
  6. DM368开发 -- uboot 使用
  7. string与wstring互转
  8. python猴子选大王讲解_关于猴子选大王的面试题
  9. 共享文件服务器密码更换,服务器共享文件密码
  10. 云钉一体,支撑5亿用户1900万企业背后的技术复盘
  11. vbs返回结果给java_返回vbs脚本
  12. 重学编程-编程入门指南 v1.4
  13. 非支配快速排序算法详解
  14. 技术族谱:预告片的制作思路
  15. 金融牌照之基金销售、基金支付、基金管理牌照简析
  16. Application Server was not connected before run configuration stop, reason: javax.management.Instanc
  17. java ajax 导入excel_通过ajax上传excel
  18. 大数据开发都需要掌握哪些编程语言
  19. 如何表示Unicode的字符?
  20. 腾讯企业邮箱使用简单说明

热门文章

  1. vim win装_VIM的代码补全工具YouCompleteMe在Windows上的安装攻略
  2. 公司--ajax获取数据
  3. socket read阻塞_go tcp中的ioutil.ReadAll阻塞的问题
  4. 对于Chua 混沌电路进一步测试
  5. 2021信号与系统一流课程申请-说课视频规划
  6. 2020人工神经网络第一次作业-参考答案第六部分
  7. ATMEGA328实验电路板
  8. Infineon第九届汽车电子开发者大会宣传视频
  9. 看看那些来自电路造型挑战赛中的作品
  10. 东南大学校内智能车竞赛