Apache Spark 编译打包过程

Posted 终回首

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache Spark 编译打包过程相关的知识,希望对你有一定的参考价值。

版本:

Ubuntu 20.04.2 LTS
Apache Maven 3.6.3
JDK 1.8
R 3.1.1

注意:必须安装提前安装Maven、JDK、R
建议使用linux编译,实在没有linux环境,可以用win10的WSL

1 下载源码

# 下载源码,推荐这样下载
git clone https://github.com/apache/spark.git
# 查看所有的tag,每个tag都是一个版本
git tag
# 切换到指定版本,这里我要编译的版本是2.4.0(如果需要其他版本就切换到其他版本)
git checkout v2.4.0

2 编译源码

编译的目的是下载好jar包

# 进入到源码的根目录
cd /opt/os_ws/spark
# 设置maven使用更多内存,不设置的话会内存溢出
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
# 执行编译命令
./build/mvn -Phadoop-3.1 -Dhadoop.version=3.1.1  -Pyarn -Phive -Phive-thriftserver -DskipTests clean package
  • -Phadoop-3.1 -Dhadoop.version=3.1.1 -Pyarn
    指定hadoop的版本为3.1.1(如果需要不同的版本就指定需要的版本);指定可用yarn提交;
  • -Phive -Phive-thriftserver
    指定支持hive
  • -DskipTests
    指定跳过测试
  • clean package
    清空上一次打的jar包再打包

执行成功,编译完成

3 构建可部署版本

3.1 修改mvn路径

默认的mvn路径指向$SPARK_HOME/build/mvn,这里要改成自己安装的mvn路径

vim ./dev/make-distribution.sh

修改mvn命令的路径为自己安装的路径

修改前

修改后

3.2 执行打包命令

./dev/make-distribution.sh --name hadoop3.1.1 --tgz -Psparkr -Phadoop-3.1 -Dhadoop.version=3.1.1 -Phive -Phive-thriftserver -Pyarn

经过十几分钟终于执行成功了

打包好的安装包就在根目录下

终于可以拿去部署了!

参考资料

http://spark.apache.org/docs/2.4.0/building-spark.html#buildmvn

以上是关于Apache Spark 编译打包过程的主要内容,如果未能解决你的问题,请参考以下文章

spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段

Apache spark2.1.0编译hadoop-2.6-cdh5.11.2的对应版本

sbt打包Scala写的Spark程序,打包正常,提交运行时提示找不到对应的类

用idea+maven编译打包spark project core错误:java.lang.RuntimeException: Unable to load a Suite class

值 toDS 不是 org.apache.spark.rdd.RDD 的成员

Linux中如何从源代码编译安装程序