spark2的编译

0、操作系统

centos:6
hadoop:2.5.0-cdh5.3.6

1、为什么要编译 spark 源码?

学习spark的第一步 就应该是编译源码,后期修改和调试,扩展集成的功能模块

2、Spark 源码编译的三种形式?

a.maven 编译
# export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
# ${SPARK_HOME_SRC}/./build/mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package

b.SBT 编译
#${SPARK_HOME_SRC}/./build/sbt -Pyarn -Phadoop-2.3 package

c.打包编译
# ${SPARK_HOME_SRC}/./dev/make-distribution.sh --tgz -Psparkr -Dhadoop.version=2.5.0-cdh5.3.6 -Phadoop-2.4 -Phive -Phive-thriftserver -Pyarn

3、版本要求:

Maven 3.3.9

JDK 1.8+(1.8.0_12)
Scala 2.11.8
Note: Starting version 2.0, Spark is built with Scala 2.11 by default.
R(3.2.0)
wget http://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-3/R-3.2.0.tar.gz

4、编译步骤概览:

0. root 用户编译 + 网络通畅
1. jdk 环境搭建
2. maven 环境搭建
3. R(3.2.0)语言环境
4. 正式编译

5、jdk、maven 环境都是采用压缩包安装形式

操作形式:上传压缩包、解压、配置环境变量、更新source 资源文件
NOTE:
检查Maven 是否和现有Java 环境对应起来
给Maven 配置阿里云镜像:
修改 ${MAVEN_HOME}/conf/settings.xml
添加镜像:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

R 语言 搭建
下载源码
# cd ${R_HOME}
# yum install gcc-gfortran readline-devel libXt-devel

error:
# yum install gcc-gfortran #否则报”configure: error: No F77 compiler found”错误

# yum install gcc gcc-c++ #否则报”configure: error: C++ preprocessor “/lib/cpp” fails sanity check”错误

# yum install readline-devel #否则报”–with-readline=yes (default) and headers/libs are not available”错误

# yum install libXt-devel #否则报”configure: error: –with-x=yes (default) and X11 headers/libs are not available”错误

# ./configure --enable-R-shlib

#make && make install
# vi ~/.bashrc (配置环境变量)
export R_HOME=/opt/modules/R-3.2.0
export PATH=$R_HOME/bin:$PATH、

6、正式编译

上传源码压缩包并解压
# cd ${SPARK_HOME_SRC}
# ${SPARK_HOME_SRC}/./dev/make-distribution.sh --tgz -Psparkr -Phadoop-2.4 -Dhadoop.version=2.5.0-cdh5.3.6 -Phive -Phive-thriftserver -Pyarn
a. 添加 sparkr

b. 添加hadoop版本 -Dhadoop.version=2.5.0-cdh5.3.6

c. scala 压缩包解压到${SPARK_HOME_SRC}/build/

d. 修改为对应的版本(dev/make-distribution.sh)
初始
VERSION=$("$MVN" help:evaluate -Dexpression=project.version [email protected] 2>/dev/null | grep -v "INFO" | tail -n 1)
SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version [email protected] 2>/dev/null\
| grep -v "INFO"\
| tail -n 1)
SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version [email protected] 2>/dev/null\
| grep -v "INFO"\
| tail -n 1)
SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive [email protected] 2>/dev/null\
| grep -v "INFO"\
| fgrep --count "<id>hive</id>";\
# Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
# because we use "set -o pipefail"
echo -n)
替换为下面对应的参数值
VERSION=2.10
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.5.0-cdh5.3.6
SPARK_HIVE=1

e.spark pom.xml 添加 cdh reponsitory
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>

如果不添加会出现如下错误信息:
Failed to execute goal on project spark-launcher_2.11: Could not resolve dependencies for project org.apache.spark:spark-launcher_2.11:jar:2.1.0: Could not find artifact org.apache.hadoop:hadoop-client:jar:2.5.0-cdh5.3.6

[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :spark-launcher_2.11
-rf :spark-launcher_2.11

# ${SPARK_HOME_SRC}/./dev/make-distribution.sh --tgz -Psparkr -Phadoop-2.4 -Dhadoop.version=2.5.0-cdh5.3.6 -Phive -Phive-thriftserver -Pyarn -rf :spark-launcher_2.11

下面是没有使用R模块的
# ${SPARK_HOME_SRC}/./dev/make-distribution.sh --tgz -Phadoop-2.4 -Dhadoop.version=2.5.0-cdh5.3.6 -Phive -Phive-thriftserver -Pyarn
===============================================================================

最终打包编译 生成的包目录对应为${SPARK_HOME_SRC}/spark-2.1.0-bin-2.5.0-cdh5.3.6.tgz
SPARK_VERSION-bin-HADOOP-VERSION.tgz

NOTE:
将编译好的spark 源码打包保存一份,后面 spark sql 及 spark streaming 后续学习会使用到相关的 jar 包.

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

真正使用R 运行在 spark 上,前面编译完成以后你需要初始化 R
# cd {SPARK_HOME_SRC}/R/
# ./install-dev.sh
参考文章:https://github.com/apache/spark/tree/master/R

时间: 2024-10-10 01:29:18

spark2的编译的相关文章

新闻实时分析系统 Spark2.X环境准备、编译部署及运行

1.Spark概述 Spark 是一个用来实现快速而通用的集群计算的平台. 在速度方面, Spark 扩展了广泛使用的 MapReduce 计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理. 在处理大规模数据集时,速度是非常重要的.速度快就意味着我们可以进行交互式的数据操作, 否则我们每次操作就需要等待数分钟甚至数小时. Spark 的一个主要特点就是能够在内存中进行计算, 因而更快.不过即使是必须在磁盘上进行的复杂计算, Spark 依然比 MapReduce 更加高效. 2.Sp

Spark2.1.0编译

1.下载spark源码包 http://spark.apache.org/downloads.html 2.安装Scala与maven,解压spark源码包 安装Scala: tar zxf scala-2.11.8.tar 修改vim /etc/profile export SCALA_HOME=/usr/scala/scala-2.11.8 export PATH=$PATH:$SCALA_HOME/bin 安装maven tar zxf apache-maven-3.3.9.tar 修改v

mac os x 编译spark-2.1.0 for hadoop-2.8.0

mac os x maven编译spark-2.1.0  for hadoop-2.8.0 1.官方文档中要求安装Maven 3.3.9+ 和Java 8 ; 2.执行         export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m" 3.cd spark2.1.0源码根目录下 ./build/mvn -Pyarn  -Phadoop-2.8  -Dhadoop.version=2.8.0 -Dscala-2.11   

spark2.0.1源码编译

一.编译源码步骤演示详解 . 编译spark环境要求 1.必须在linux系统下编译(以centos6.4为例) 2.编译使用的JDK版本必须是1.6以上(以JDK1.8为例) 3.编译需要使用Maven版本3.0以上(以Maven3.3.9为例) 4.编译需要使用Scala(以scala-2.11.8为例) . 编译spark所需要的包 1.spark-2.0.1.tgz:下载spark编译的源码包,提供apache下载页面http://archive.apache.org/dist/spar

Spark2.0.0源码编译

Hive默认使用MapReduce作为执行引擎,即Hive on mr,Hive还可以使用Tez和Spark作为其执行引擎,分别为Hive on Tez和Hive on Spark.由于MapReduce中间计算均需要写入磁盘,而Spark是放在内存中,所以总体来讲Spark比MapReduce快很多.默认情况下,Hive on Spark 在YARN模式下支持Spark. 因为本人在之前搭建的集群中,部署的环境为:hadoop2.7.3 hive2.3.4 scala2.12.8 kafka2

spark-2.4.2.tgz下载及编译

51CTO没有目录功能么?好难受 ========有任何问题欢迎加企鹅讨论^-^1176738641 ======== 前期准备 文件夹创建 #用户目录下创建五个文件夹 app #存放应用 software #存放应用压缩包 data #存放测试数据 lib #存放jar包 source #存放源码 下载需要的软件及版本 apache-maven-3.6.1-bin.tar.gz hadoop-2.6.0-cdh5.14.0.tar.gz jdk-8u131-linux-x64.tar.gz s

CentOS7+Hadoop2.7.2(HA高可用+Federation联邦)+Hive1.2.1+Spark2.1.0 完全分布式集群安装

1       VM网络配置... 3 2       CentOS配置... 5 2.1             下载地址... 5 2.2             激活网卡... 5 2.3             SecureCRT. 5 2.4             修改主机名... 6 2.5             yum代理上网... 7 2.6             安装ifconfig. 8 2.7             wget安装与代理... 8 2.8       

spark2.x由浅入深深到底系列五之python开发spark环境配置

学习spark任何的技术前,请先正确理解spark,可以参考: 正确理解spark 以下是在mac操作系统上配置用python开发spark的环境 一.安装python spark2.2.0需要python的版本是Python2.6+ 或者 Python3.4+ 可以参考: http://jingyan.baidu.com/article/7908e85c78c743af491ad261.html 二.下载spark编译包并配置环境变量 1.在官网中: http://spark.apache.o

大数据学习环境搭建(CentOS6.9+Hadoop2.7.3+Hive1.2.1+Hbase1.3.1+Spark2.1.1)

node1 192.168.1.11 node2 192.168.1.12 node3 192.168.1.13 备注 NameNode Hadoop Y Y 高可用 DateNode Y Y Y ResourceManager Y Y 高可用 NodeManager Y Y Y JournalNodes Y Y Y 奇数个,至少3个节点 ZKFC(DFSZKFailoverController) Y Y 有namenode的地方就有ZKFC QuorumPeerMain Zookeeper Y