iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >基于CentOS6.4环境如何编译Spark-2.1.0源码
  • 468
分享到

基于CentOS6.4环境如何编译Spark-2.1.0源码

2023-06-03 01:06:48 468人浏览 安东尼
摘要

小编给大家分享一下基于Centos6.4环境如何编译spark-2.1.0源码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1 写在前面的话 有些小伙伴可能会问:Spark官网不是已经提供了Spark针对不同版本的安装包了

小编给大家分享一下基于Centos6.4环境如何编译spark-2.1.0源码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1 写在前面的话

有些小伙伴可能会问:Spark官网不是已经提供了Spark针对不同版本的安装包了吗,我们为什么还需要对Spark源码进行编译呢?针对这个问题我们到Spark官网: spark.apache.org来看下,如下图所示:
基于CentOS6.4环境如何编译Spark-2.1.0源码

Spark官网的确是提供了一些hadoop版本的Spark安装包,但是提供的这些是否能够满足我们的要求呢?答案肯定是否定的,根据本人近几年做Spark的开发经验,列出如下几点

  • 在生产环境中Hadoop的选型,很大部分都是CDH或者HDP系列的,那么官方提供的这几个Hadoop系列是否能够生产的需求?

  • 在开发过程中,我们经常会遇到需要对Spark的源码进行修改,那么修改后的代码如何集成到Spark安装包中去呢?

针对如上列出的两点的个人觉得比较好的最佳实践:

  • 根据生产上运行的Hadoop版本编译出Spark的安装包

  • 修改Spark源码之后,重新编译Spark

所以:个人觉得如果想更好的学习和使用Spark,那么第一步就是要会根据Spark源码编译出安装包。

2 前置准备

根据Spark官方文档编译模块的介绍(Http://spark.apache.org/docs/2.1.0/building-spark.html)的介绍:

The Maven-based build is the build of reference for Apache Spark. Building Spark using Maven requires Maven 3.3.9 or newer and Java 7+. Note that support for Java 7 is deprecated as of Spark 2.0.0 and may be removed in Spark 2.2.0.”

我们得知:

  • Java需要7+版本,而且在Spark2.0.0之后Java 7已经被标识成deprecated了,但是不影响使用,但是在Spark2.2.0版本之后Java 7的支持将会被移除;

  • Maven需要3.3.9+版本

2.1 Java7的安装

2.1.1 下载

Java SE安装包下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-arcHive-downloads-javase7-521261.html

本文章我们使用的jdk版本是:jdk1.7.0_51

2.1.2 安装

我们所有的软件都安装在hadoop用户的根目录的app文件夹下

//解压 tar -zxvf jdk-7u51-linux-x64.tar.gz -C ~/app//将JDK目录添加到系统环境变量(~/.bash_profile)中 export JAVA_HOME=/home/hadoop/app/jdk1.7.0_51 export PATH=$JAVA_HOME/bin:$PATH //让配置文件生效 source ~/.bash_profile//执行java,查看java版本 java -version //如果安装成功后,则有如下信息的输出 java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

2.2 Maven3.3.9的安装

2.2.1 下载

Maven3.3.9安装包下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache//maven/maven-3/3.3.9/binaries/

2.2.2 安装

// 解压 tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ~/app/ //将JDK目录添加到系统环境变量(~/.bash_profile)中 export MAVEN_HOME=/home/hadoop/app/apache-maven-3.3.9 export PATH=$MAVEN_HOME/bin:$PATH //让配置文件生效 source ~/.bash_profile//执行mvn,查看版本 mvn -v //如果安装成功后,则有如下信息的输出 Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323Dc5; 2015-11-10T08:41:47-08:00) Maven home: /home/hadoop/app/apache-maven-3.3.9 Java version: 1.7.0_51, vendor: Oracle Corporation Java home: /home/hadoop/app/jdk1.7.0_51/jre Default locale: zh_CN, platfORM encoding: UTF-8 OS name: "linux", version: "2.6.32-358.el6.x86_64", arch: "amd64", family: "unix"

2.3 Spark-2.1.0源码下载

下载地址:http://spark.apache.org/downloads.html
基于CentOS6.4环境如何编译Spark-2.1.0源码
下载完成后解压即可,解压后的目录结构如下图所示
基于CentOS6.4环境如何编译Spark-2.1.0源码

3 Spark源码编译

查看官方文档编译源码部分:http://spark.apache.org/docs/2.1.0/building-spark.html#building-a-runnable-distribution

我们可以使用Spark源码目录中的dev下的make-distribution.sh脚本,官方提供的编译命令如下:

./dev/make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.4 -Phive -Phive-thriftserver -Pmesos -Pyarn

参数说明:

  • --name:指定编译完成后Spark安装包的名字

  • --tgz:以tgz的方式进行压缩

  • -Psparkr:编译出来的Spark支持R语言

  • -Phadoop-2.4:以hadoop-2.4的profile进行编译,具体的profile可以看出源码根目录中的pom.xml中查看

  • -Phive和-Phive-thriftserver:编译出来的Spark支持对Hive的操作

  • -Pmesos:编译出来的Spark支持运行在Mesos上

  • -Pyarn:编译出来的Spark支持运行在YARN上

那么我们可以根据具体的条件来编译Spark,比如我们使用的Hadoop版本是2.6.0-cdh6.7.0,并且我们需要将Spark运行在YARN上、支持对Hive的操作,那么我们的Spark源码编译脚本就是:

./dev/make-distribution.sh --name 2.6.0-cdh6.7.0 --tgz -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh6.7.0

编译成功后,在Spark源码的根目录中就spark-2.1.0-bin-2.6.0-cdh6.7.0.tgz包,那么我们就可以使用编译出来的这个安装包来进行Spark的安装了。

有小伙伴可能会问,为什么编译出来的安装包的名称是spark-2.1.0-bin-2.6.0-cdh6.7.0.tgz呢?我们可以带着这个疑惑,查看make-distribution.sh的源码,在该脚本的最后部分,有如下代码:

if [ "$MAKE_TGZ" == "true" ]; then TARDIR_NAME=spark-$VERSION-bin-$NAME  TARDIR="$SPARK_HOME/$TARDIR_NAME" rm -rf "$TARDIR" cp -r "$DISTDIR" "$TARDIR" tar czf "spark-$VERSION-bin-$NAME.tgz" -C "$SPARK_HOME" "$TARDIR_NAME" rm -rf "$TARDIR" fi

该VERSION就是我们Spark的版本即2.1.0,NAME就是我们在编译时指定的2.6.0-cdh6.7.0,所以根据该脚本最终输出的Spark安装包的全称为: spark-2.1.0-bin-2.6.0-cdh6.7.0.tgz。通过该代码的查看希望大家能明白一个问题:源码面前,了无秘密。

注意:在编译过程中会出现下载某个依赖包的时间太久,这是由于网络问题,可以执行ctrl+c停止编译命令,然后重新运行编译命令,在编译过程中多试几次即可。有条件的小伙伴,建议开着VPN然后再进行编译,整个编译过程会顺畅很多。

看完了这篇文章,相信你对“基于CentOS6.4环境如何编译Spark-2.1.0源码”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 基于CentOS6.4环境如何编译Spark-2.1.0源码

本文链接: https://www.lsjlt.com/news/232029.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于CentOS6.4环境如何编译Spark-2.1.0源码
    小编给大家分享一下基于CentOS6.4环境如何编译Spark-2.1.0源码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1 写在前面的话 有些小伙伴可能会问:Spark官网不是已经提供了Spark针对不同版本的安装包了...
    99+
    2023-06-03
  • 如何配置hadoop基础编译环境
    这篇文章主要介绍如何配置hadoop基础编译环境,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Part1 JDK:1.下载软件包2.在CRT(或虚拟机里的操作)命令:cd /opt  移动到opt ...
    99+
    2023-06-03
  • PHP:CentOS Linux环境下源码编译安装PHP8.0
    系统环境 cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core) 查看可用版本 https://www.php.net/releases...
    99+
    2023-09-14
    linux 服务器 运维
  • windows下使用 intellij idea 编译 kafka 源码环境
    1. 从 GitHub 网站,git clone kafka 源码 2. 下载安装好 gradle,scala   2.1 从 dependencies.gradle 文件...
    99+
    2024-04-02
  • Windows环境IDEA下Ranger1.2.0源码编译详细流程
    目录一、本地环境准备二、源码编译三、使用idea打开项目 1. 安装数据库Mysql版2. 配置Tomcat,发布 security-admin-web项目。3. 修改se...
    99+
    2024-04-02
  • android编译环境如何搭建
    要搭建Android编译环境,可以按照以下步骤进行操作:1. 安装Java开发工具包(JDK):Android开发需要使用Java进...
    99+
    2023-08-11
    android
  • ubuntu如何交叉编译环境
    12ubuntu交叉编译环境的搭建示例:打开终端命令行。输入以下命令安装交叉编译环境。sudo apt-get install gcc g++ libcc1 libg++ make gdb再输入以下命令安装交叉编译器。wget ftp://...
    99+
    2024-04-02
  • 如何构建java编译环境
    这篇文章主要介绍了如何构建java编译环境,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一。在环境变量中:classpathC:SunAppServerjdklibools....
    99+
    2023-06-03
  • Linux环境下, 源码编译安装详解 (编译CMake 3.15 和 gcc 5.3.0 为例)
    一. 源码编译安装详解 (待补充)二. 安装CMake 3.151. 查看操作系统版本[root@mysql80 local]# cat /etc/redhat-releaseCentOS ...
    99+
    2023-06-05
  • 编译harmonyos的下载源码以及搭建环境过程
    编译harmonyos的下载源码以及搭建环境过程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、环境搭建编译鸿蒙的源码建议在Ubuntu20.04下进行,windows下...
    99+
    2023-06-15
  • 怎么在CentOS 7.4环境下源码编译安装postgreSQL 11.4
    本篇内容介绍了“怎么在CentOS 7.4环境下源码编译安装postgreSQL 11.4”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希...
    99+
    2024-04-02
  • postgresql9.6主从高可用源码环境编译配置详解
    系统版本:centos78核32G内存主从服务器IP:192.168.125.33 postgreSQL master192.168.125.34 postgreSQL slave1、创建数据库管理账户# ...
    99+
    2024-04-02
  • 如何使用源码编译apache2.4
    如何使用源码编译apache2.4,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。[root@Jaking12 ~]# yum install&nb...
    99+
    2023-06-05
  • 源码如何编译安装MySQL5.6.12
    这篇文章主要为大家展示了“源码如何编译安装MySQL5.6.12”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“源码如何编译安装MySQL5.6.12”这篇文章吧...
    99+
    2024-04-02
  • linux交叉编译环境如何搭建
    搭建Linux交叉编译环境需要以下步骤:1. 安装交叉编译工具链:交叉编译工具链是为了在一种操作系统上生成另一种操作系统的可执行文件。可以通过以下几种方式安装交叉编译工具链:- 使用发行版提供的交叉编译工具链:有些Linux发行版提供了...
    99+
    2023-08-11
    linux
  • 【SA8295P 源码分析】87 - SA8295P HQNX + Android 编译环境搭建指导
    【SA8295P 源码分析】87 - SA8295P HQNX + Android 编译环境搭建指导 一、Android 编译环境搭建:Android + sa8295p-hqx-4-2-...
    99+
    2023-09-25
    QAM8295P SA8295P HQNX Android
  • 如何理解Ubuntu编译源码包
    如何理解Ubuntu编译源码包,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。学习编译时,你可能会遇到Ubuntu编译问题,这里将介绍Ubuntu编译问题的解决方法,在这里拿...
    99+
    2023-06-17
  • 如何修改并编译golang源码
    这篇文章主要讲解了“如何修改并编译golang源码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何修改并编译golang源码”吧!最近为了做Hyperledger Fabric国密改造,涉...
    99+
    2023-06-20
  • 如何基于Anaconda搭建Django环境
    这篇文章主要为大家展示了“如何基于Anaconda搭建Django环境”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何基于Anaconda搭建Django环境”这篇文章吧。一、介绍Django...
    99+
    2023-06-25
  • tensorflow基于Anaconda环境如何搭建
    本篇内容主要讲解“tensorflow基于Anaconda环境如何搭建”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“tensorflow基于Anaconda环境如何搭建”吧!1.简介Tensor...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作