Spark编译环境配置-使用Maven编译项目源码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7 使用Maven编译项目源码
3.编译源码与构建发行版 • Spark允许使用Maven、SBT以及 Zinc数据库来编译源码和构建项目,源码目
录下的build子目录内提供了相应的Shell脚本文件,用于检查系统中是否已经 存在所需的构建工具,如果没有的话会自动从网络上下载,此外,当读者使 用其中一种工具进行项目构建时,脚本文件会自动下载其他两种构建工具。 • 以Maven为例,构建一份可适配于Hadoop 2.4版本的Spark的命令如下。
$ build/mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package
8 使用Maven编译项目源码
3.编译源码与构建发行版 • Hadoop对应的Maven版本简介如表所示。其他更多选项与参数读者可参考官
方提供的项目构架文档。
需的依赖包,受网络环境影响很大,所耗 费的时间也会很长,在全新的Ubuntu 14.04 中编译整套源码消耗时间大概为一个小时 左右,再次编译源码,由于无需重新下载 依赖包,时间上会快很多。编译完成后的 结果如图所示。
10 使用Maven编译项目源码
• 如果学习者希望构建一份类似于官方所提供的Spark二进制安装包,可以直 接使用 make-distribution.sh脚本来完成这个任务。
5 使用Maven编译项目源码
1.下载Spark源码 • 访问Spark下载页,这次不选
择预编译的二进制包,而是下 载Source Code(Can build several Hadoop versions),如 图所示。执行命令"tar -zxvf spark-1.4.1.tgz"解压缩下载好 的源码包。
4 使用Maven编译项目源码
• 尽管可以使用IDEA直接导入Spark源码和构建项目,但在实际编译过程中, 会出现许多异常和错误,解决步骤也比较繁琐,因此建议学习者先在命令行 下使用Maven或者SBT编译整个项目,再在IDEA中导入编译好的项目文件。 对直接使用IDE(Integrated Development Environment,集成开发环境)编译源 码感兴趣的学习者也可以参考官方提供文档 (/docs/latest/building-spark.html)中的 Building Spark with IntelliJ IDEA or Eclipse小节。
6 使用Maven编译项目源码
2.设置Maven内存限制 • 官方推荐使用 Maven 来编译项目,由于Maven工具默认分配的内存比较小,
因此需要将其内存上限调整为一个合适值。
$ export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
Hadoop版本 1.x – 2.x 2.2.x 2.3.x 2.4.x
2.6.x或者更高版本
Maven Profile hadoop-1 hadoop-2.2 hadood-2.3 hadoop-2.4 hadoop-2.6
9 使用Maven编译项目源码
3.编译源码与构建发行版 • 编译过程中会自动从Maven仓库中下载所
• 下面命令是一个示例,该脚本会自动调用Maven编译并生成一份适配 Hadoop 2.4和 Yarn的Spark版本,并生成tar.gz格式的压缩包。更为具体的使 用方法读者可以执行命令 "./make-distribution.sh -help"查看。
./make-distribution.sh --name custom-spark --tgz -Phadoop-2.4 -Pyarn
Spark编译环境配置— —使用Maven编译项目源码
2
• 参考文献:Spark:原理、机制及应用
作者:刘驰

Spark大数据处理:技术、应用与性能优化 作者:高彦杰
• 出版社: 机械工Байду номын сангаас出版社
• 版权说明:
• 若作者对本资料使用持有异议,请及时联系本网站,我们将在第一时间妥善处理。
3 Spark编译环境配置——使用Maven编译项目源码
• 首先从 Spark官网上下载编译好的安装包,然后将其部署在本地以及集群上, 但在实际应用过程中,官方预先构建好的二进制包,并不一定能够满足需求, 例如安装包适配的Hadoop、Hive版本或者Scala版本与集群上版本不一致,导 致Spark无法正常运作,又或者,学习者希望通过阅读和调试Spark源码来深 入理解其内部机制,这时候就需要自己去手动编译Spark,本单元将会讲述 如何搭建一个Spark源码编译环境以及如何去编译Spark源码。
相关文档
最新文档