大数据之 Spark 编译打包

2019-01-16  本文已影响0人  etrols

hadoop 版本:hadoop-2.6.0-cdh5.9.3.tar.gz

第一步,打开 Spark 官网:https://spark.apache.org

第二步,点击 Download,如下图:

Spark-Download

第三步,下载 Spark 源码,如下图:

Spark-源码链接

第四步,编译源码

解压 Spark

tar -zxvf spark-2.4.0.tgz

进入 Spark 源码目录下

cd spark-2.4.0

首先使用 mvn 命令编译将 jar 包下载下来

mvn -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop-version=hadoop-2.6.0-cdh5.9.3 -DskipTests clean package

命令参数解析

--tgz  //打包成 tgz 格式
-Pyarn  //使用 yarn Profile
-Phadoop-2.6  //使用 hadoop-2.6 Profile
-Phive  //使用 hive-thriftserver Profile
-Phive-thriftserver  //使用 hive-thriftserver Profile
-Dhadoop-version  //指定 hadoop-version 版本信息

使用 mvn 之前需要安装 maven,这里不再赘述,当然使用 Spark 源码自带 maven 可以不安装

./build/mvn -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop-version=hadoop-2.6.0-cdh5.9.3 -DskipTests clean package

见到如下图说明成功:


Spark 编译成功

第五步,编译 tgz 包,可以跳过第四步

在 spark 源码目录执行 make-distribution 编译命令

./dev/make-distribution.sh --name cdh5.9.3 --tgz -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop-version=hadoop-2.6.0-cdh5.9.3

命令参数解析

--name  //表示打包的名称

见如下表明打包成功:


spark 打包

在 spark 源码目录下有 spark-2.4.0-bin-cdh5.9.3.tgz 生成,如下图:


spark tgz 包位置

可能程序的错误及解决方案

  1. [ERROR] 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.4.0: Could not find artifact org.apache.hadoop:hadoop-client:jar:2.6.0-cdh5.9.3 in nexus-aliyun (http://maven.aliyun.com/nexus/content/groups/public) -> [Help 1]

在 spark 源码目录下的 pom 文件添加 CDH maven 仓库

<repository>
    <id>cloudera</id>
    <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>

如下图所示:


CDH 仓库
  1. 有时编译的机器内存不够,一般推荐4G以上的内存
    添加以下环境变量
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"

3.如果编译的是Scala版本是 2.10,需要在 spark 源码目录下先执行如下的脚本

./dev/change-scala-version.sh 2.10
上一篇下一篇

猜你喜欢

热点阅读