1、SBT编译
vi project/SparkBuild.scala
修改仓库:
"Maven Repository" at "http://172.16.219.120:8080/nexus/content/groups/public/"
SPARK_HADOOP_VERSION=2.4.0.2.1.2.0-402 SPARK_YARN=true sbt/sbt clean assembly
2、MAVEN编译
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
mvn -Pyarn-Dhadoop.version=2.4.0.2.1.2.0-402 -Dyarn.version=2.4.0.2.1.2.0-402 -DskipTests clean package
3、编译打包
pox.xml
修改仓库:maven-repo --> <url>http://172.16.219.120:8080/nexus/content/groups/public/</url>
不带Hadoop依赖:hadoop-provided --> <activeByDefault>true</activeByDefault>
编译完源代码后,虽然直接用编译后的目录再加以配置就可以运行spark,但是这时目录很庞大,又3G多吧,部署起来很不方便,所以需要生成部署包。
spark源码根目录下带有一个脚本文件make-distribution.sh可以生成部署包,其参数有:
--hadoop VERSION:打包时所用的Hadoop版本号,不加此参数时hadoop版本为1.0.4。
--with-yarn:是否支持Hadoop YARN,不加参数时为不支持yarn。
--with-hive:是否在Spark SQL 中支持hive,不加此参数时为不支持hive。
--skip-java-test:是否在编译的过程中略过java测试,不加此参数时为略过。
--with-tachyon:是否支持内存文件系统Tachyon,不加此参数时不支持tachyon。
--tgz:在根目录下生成 spark-$VERSION-bin.tgz,不加此参数时不生成tgz文件,只生成/dist目录。
--name NAME:和--tgz结合可以生成spark-$VERSION-bin-$NAME.tgz的部署包,不加此参数时NAME为hadoop的版本号。
如果要生成spark支持yarn、hadoop2.4.0.2.1.2.0-402的部署包,只需要将源代码复制到指定目录,进入该目录后运行:
./make-distribution.sh --hadoop 2.4.0.2.1.2.0-402--with-yarn --tgz --skip-java-test
如果要生成spark支持yarn、hive的部署包,只需要将源代码复制到指定目录,进入该目录后运行:
./make-distribution.sh --hadoop 2.4.0.2.1.2.0-402 --with-yarn --with-hive --tgz
如果要生成spark支持yarn、hadoop2.4.0.2.1.2.0-402、techyon的部署包,只需要将源代码复制到指定目录,进入该目录后运行:
./make-distribution.sh --hadoop 2.4.0.2.1.2.0-402 --with-yarn --with-tachyon --tgz
生成在部署包位于根目录下,文件名类似于spark-1.0.0-bin-2.4.0.2.1.2.0-402.tgz。
值得注意的是:make-distribution.sh已经带有Maven编译过程,所以不需要先编译再打包。
参考:
相关推荐
### Spark源码编译流程详解 #### 一、前言 随着大数据技术的快速发展,Apache Spark作为其中的重要一环,其高效的数据处理能力受到了广泛的关注。对于开发者而言,理解Spark的内部实现机制以及如何编译Spark源码是...
8. **打包与分发**:将编译好的Hive和Spark二进制包打包并分发到集群的各个节点,以便于其他用户和应用使用。 描述中提到的“hive3.1.2-spark3.0.0和hive3.1.3-spark3.1.3二进制包”可能是已经完成编译和测试的版本...
使用hive3.1.2和spark...所以,如果想要使用高版本的hive和hadoop,我们要重新编译hive,兼容spark3.0.0。除了兼容spark3.0.0外,还将hive3.1.2的guava的版本进行了提升,和hadoop3.x保持一致,以便兼容hadoop3.1.3。
本节将介绍如何实际动手进行 RDD 的转换与操作,以及如何编写、编译、打包和运行 Spark 应用程序。 启动 Spark Shell Spark 的交互式脚本是一种学习 API 的简单途径,也是分析数据集交互的有力工具。Spark 包含多种...
1. **环境配置**:首先确保你的开发环境已经安装了Java(JDK 1.8或以上)和Scala(与Spark 1.6相匹配的版本,可能是2.10.x)。此外,还需要设置好`JAVA_HOME`和`SCALA_HOME`环境变量。 2. **获取源码**:从Apache ...
Ant是一个基于Java的构建工具,用于自动化编译、测试和打包项目。 在开始部署和编译Spark源代码之前,需要确保已经安装了JDK,并且能够熟练使用MyEclipse。此外,建议对SVN版本控制工具有基本的了解,以便能够从SVN...
内容概要:由于cdh6.3.2的spark版本为2.4.0,并且spark-sql被阉割,现基于cdh6.3.2,scala2.12.0,java1.8,maven3.6.3,,对spark-3.2.2源码进行编译 应用:该资源可用于cdh6.3.2集群配置spark客户端,用于spark-sql
1. **自定义配置**:通过打包编译,用户可以根据自身的硬件环境和需求调整编译参数,如JVM内存设置、编译目标平台等,确保Spark与系统环境的完美适配。 2. **模块化部署**:打包编译允许用户只编译所需的部分模块,...
在深入学习Spark源代码和进行自定义开发时,需要掌握其部署与编译过程。以下将详细介绍Spark源代码的获取、环境配置、编译以及生成步骤。 1. **获取Spark源代码** Spark的源代码可以通过访问Apache官方网站或使用...
《x86架构下的Python 3.7.9与Spark集成详解》 在现代数据分析和大数据处理领域,Python和Spark的结合已经成为了一种强大的工具。本文将深入探讨标题中的“x86架构python379.zip”文件,该文件包含了预编译的Python ...
在这里,`sc`是SparkContext的实例,是Spark与集群交互的入口。 其次,Spark应用程序的编写通常使用Scala、Java、Python或R语言。在实验中,推荐使用Scala编写独立的应用程序,这需要对Spark的API有一定的了解。...
在这个场景中,"基于cdh6.3.2 apache-atlas-2.1.0,完整编译打包"指的是将Apache Atlas 2.1.0与CDH 6.3.2进行了集成,并完成了编译和打包过程,以便用户可以直接在CDH环境下部署和使用。Apache Atlas 2.1.0的发布...
在构建 Spark JobServer 这样的项目时,sbt 能够处理项目的编译、打包和依赖管理,使得开发和部署更为便捷。 标签中的“spark jobserver”表明这是与 Spark JobServer 相关的内容。Spark JobServer 提供了一个轻量...
通过Spark Shell和Java编写程序,实现了从HDFS加载数据、数据统计分析以及通过Maven编译打包并提交到Spark集群运行的完整流程。 ## 项目的主要特性和功能 1. 数据加载使用Hadoop Shell命令将数据文件加载到本地...
- `build/`:构建脚本和配置文件,用于编译和打包Spark。 编译源码通常需要Java、Scala和Maven环境,通过执行`build/sbt package`命令可以生成可执行的JAR包。同时,源码还包含了丰富的测试用例,可以帮助理解各个...
本压缩包“spark--bin-hadoop3-without-hive.tgz”提供了Spark二进制版本,针对Hadoop 3.1.3进行了编译和打包,这意味着它已经与Hadoop 3.x兼容,但不包含Hive组件。在CentOS 8操作系统上,这个版本的Spark已经被...
5. `build.gradle`或`pom.xml`:构建工具文件,如Gradle或Maven,用于编译和打包项目。 通过这个项目,你可以学习到以下关键知识点: 1. **Spark核心组件**:包括Spark Core(基础服务),Spark SQL(结构化数据...
综上所述,Spark运维实战这本书详细介绍了Apache Spark的方方面面,从基础概念到深入实战,包括安装配置、编译打包、与Hadoop的交互、监控、调优以及实时数据流处理等内容。掌握这些知识点,将使读者能够充分掌握...