编译spark源码

本例记录spark源码编译的过程及问题

因为编译会有很多很多莫名其妙的错误,为了方便,使用hadoop的cdh版本,注意版本要和我的一致,

环境:

maven3.0.5

scala2.10.4                                下载地址:http://www.scala-lang.org/download/all.html

spark-1.3.0-src                        下载地址:http://spark.apache.org/downloads.html

hadoop版本:hadoop-2.6.0-cdh5.4.0.tar.gz                    下载地址:http://archive.cloudera.com/cdh5/cdh/5/                    大小:282M

方式:

make-distribution.sh打包的方式(自带maven)

命令:

进入spark目录下

cd $SPARK_HOME

./make-distribution.sh --tgz -Pyarn -Phadoop-2.4 -Dhadoop.version=2.6.0-cdh5.4.0 -Phive-0.13.1 -Phive-thriftserver

------------------------------------------------------------------------------------------------------------------------------------,

编译前的准备

1,编译镜像配置

因为我的    /root/.m2目录下没有settings文件,所以设置了全局的,在conf目录下,可以 cd $MAVEN_HOME/.m2 ,进行设置

maven的conf目录中settings文件加入:

<mirror>

<id>nexus-osc</id>

<mirrorOf>*</mirrorOf>

<name>Nexus osc</name>

<url>http://maven.oschina.net/content/groups/public/</url>

</mirror>

2,域名配置

maven编译容易被墙,所以加入下面两个域名,就不容易出错

vi /etc/resolv.conf                            加入两个域名

3,

因为make-distribution.sh执行时候会自己查找版本之类的动作,为了加快速度,把下面这段代码注释掉,自己手动加入版本信息,

make-distribution.sh中修改如下

-------

解释:

VERSION=1.3.0                        //spark的版本

SPARK_HADOOP_VERSION=2.6.0-cdh5.4.0        //hadoop的版本

SPARK_HIVE=1                                //hive,        1表示需要将hive的打包进去,非1数字表示不打包hive

编译完成之后会生成一个spark-1.3.0-bin-2.6.0-cdh5.4.0.tgz

这是云帆大数据老师给的方法我整理出来,

也可以直接使用官方给出的编译后的jar包,比如给出了build-hadoop2.6,那就下载相对应的hadoop版本使用

来自为知笔记(Wiz)

时间: 2024-11-03 21:37:12

编译spark源码的相关文章

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

前些天用maven编译打包spark,搞得焦头烂额的,各种错误,层出不穷,想想也是醉了,于是乎,换种方式,使用sbt编译,看看人品如何! 首先,从官网spark官网下载spark源码包,解压出来.我这边使用的是1.4.0版本. 然后,我们需要把sbt配置好,配置很简单,无非就是SBT_HOME什么的,大家可以参考官网给出的安装配置手册. 在window的命令行模式下进入刚刚解压的spark源码目录下,我们根据官网提示的命令输入: sbt -Pyarn -Phadoop-2.3 assembly

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

1. 官网下载源码 source code,地址: http://spark.apache.org/downloads.html 2. 使用maven编译: 注意在编译之前,需要设置java堆大小以及永久代大小,避免mvn出现内存溢出的情况. windows下设置:%MAVEN_HOME%\bin\mvn.cmd,将其中的 @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=80

Spark源码编译

前言 Spark可以通过SBT和Maven两种方式进行编译,再通过make-distribution.sh脚本生成部署包. SBT编译需要安装git工具,而Maven安装则需要maven工具,两种方式均需要在联网 下进行.  尽管maven是Spark官网推荐的编译方式,但是sbt的编译速度更胜一筹.因此,对于spark的开发者来说,sbt编译可能是更好的选择.由于sbt编译也是基于maven的POM文件,因此sbt的编译参数与maven的编译参数是一致的. 心得 有时间,自己一定要动手编译源码

Apache Spark源码走读之18 -- 使用Intellij idea调试Spark源码

欢迎转载,转载请注明出处,徽沪一郎. 概要 上篇博文讲述了如何通过修改源码来查看调用堆栈,尽管也很实用,但每修改一次都需要编译,花费的时间不少,效率不高,而且属于侵入性的修改,不优雅.本篇讲述如何使用intellij idea来跟踪调试spark源码. 前提 本文假设开发环境是在Linux平台,并且已经安装下列软件,我个人使用的是arch linux. jdk scala sbt intellij-idea-community-edition 安装scala插件 为idea安装scala插件,具

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

0.环境: java 1.8 scala 2.11.8 maven 3.5.0 idea 2017 spark 2.2.0 1完成以下配置 java环境变量 scala环境变量 maven setting配置文件jar包存放路径 idea下载scala plugins语言插件 idea配置maven setting及jar包存放路径 spark git :https://github.com/apache/spark.git 2编译spark源码 进入目录$spark_home 配置maven内

了解Spark源码的概况

本文旨在帮助那些想要对Spark有更深入了解的工程师们,了解Spark源码的概况,搭建Spark源码阅读环境,编译.调试Spark源码,为将来更深入地学习打下基础. 一.项目结构 在大型项目中,往往涉及非常多的功能模块,此时借助于Maven进行项目.子项目(模块)的管理,能够节省很多开发和沟通成本.整个Spark项目就是一个大的Maven项目,包含着多个子项目.无论是Spark父项目还是子项目,本身都可以作为独立的Maven项目来管理.core是Spark最为核心的功能模块,提供了RPC框架.度

Apache Spark源码走读之9 -- Spark源码编译

欢迎转载,转载请注明出处,徽沪一郎. 概要 本来源码编译没有什么可说的,对于java项目来说,只要会点maven或ant的简单命令,依葫芦画瓢,一下子就ok了.但到了Spark上面,事情似乎不这么简单,按照spark officical document上的来做,总会出现这样或那样的编译错误,让人懊恼不已. 今天闲来无事,又重试了一把,居然o了,做个记录,以备后用. 准备 我的编译机器上安装的Linux是archlinux,并安装后如下软件 scala 2.11 maven git 下载源码 第

01 Spark源码编译

1.1设置机器名:hostname gedit /etc/sysconfig/network Scala http://www.scala-lang.org/ cd /opt mkdir scala cp /home/hserver1/desktop/scala-2.12.2.tgz /opt/scala cd /opt/scala tar -xvf scala-2.12.2.tgz 配置环境变量 gedit /etc/profile export SCALA_HOME=/opt/scala/s

Apache Spark源码走读之12 -- Hive on Spark运行环境搭建

欢迎转载,转载请注明出处,徽沪一郎. 楔子 Hive是基于Hadoop的开源数据仓库工具,提供了类似于SQL的HiveQL语言,使得上层的数据分析人员不用知道太多MapReduce的知识就能对存储于Hdfs中的海量数据进行分析.由于这一特性而收到广泛的欢迎. Hive的整体框架中有一个重要的模块是执行模块,这一部分是用Hadoop中MapReduce计算框架来实现,因而在处理速度上不是非常令人满意.由于Spark出色的处理速度,有人已经成功将HiveQL的执行利用Spark来运行,这就是已经非常