作者 | 敏叔V587

责编 | 徐威龙

封图| CSDN 下载于视觉中国

Spark3.0已经发布有一阵子了,官方发布了预览版,带来了一大波更新,对于我们程序员来说,首先当然是代码拉过来,打个包,跑起来!!

源码地址

Spark源码是托管在github上面的,源码地址:

Spark官方源码 https://github.com/apache/spark

不过clone下了还是老费劲,不得琢磨琢磨微软收购github之后这个中国的网速问题不知道他们怎么看,我在gitee上面直接也fork一份源码,再进行clone。

gitee上Spark源码 :

https://gitee.com/CodeGarden2019/spark

编译和打包

作为一个过(被)来(虐)人,编译之前需要做点工作,后续就顺利很多。

直接编译会出现下面的错误:

......
exec: curl --silent --show-error -L https://downloads.lightbend.com/zinc/0.3.15/zinc-0.3.15.tgz
curl: (77) error setting certificate verify locations:......
exec: curl --silent --show-error -L https://downloads.lightbend.com/scala/2.12.10/scala-2.12.10.tgz......
/home/hdfs/Spark3.0/build/mvn: line 130: cd: /home/hdfs/Spark3.0/build/scala-2.12.10/bin/../lib: No such file or directory
/home/hdfs/Spark3.0/build/mvn: line 131: cd: /home/hdfs/Spark3.0/build/scala-2.12.10/bin/../lib: No such file or directory
exec: curl --silent --show-error -L https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
......
/home/hdfs/Spark3.0/build/mvn: line 148: /home/hdfs/Spark3.0/build/zinc-0.3.15/bin/zinc: No such file or directory
......

这个时候一定要淡定,这里的信息其实是编译的时候需要依赖apache-maven-3.6.3-bin.tar.gz、scala-2.12.10.tgz、zinc-0.3.15.tgz,如果不存在则会自动下载,但是下载其实是失败的,我们选择手动下载这几个包,放在build里面解压好。

接下来我们执行:

/dev/make-distribution.sh --name spark-3.0  --tgz  -Phadoop-2.6 -Phive -Phive-thriftserver  -Pyarn -DskipTests

脚本是不报错了,但是一直卡着

我们找到脚本,129行开始的地方:

VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ \| grep -v "INFO"\| grep -v "WARNING"\| tail -n 1)
SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ \| grep -v "INFO"\| grep -v "WARNING"\| tail -n 1)
SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ \| grep -v "INFO"\| grep -v "WARNING"\| tail -n 1)
SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ \| grep -v "INFO"\| grep -v "WARNING"\| 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)

这个地方是获获取各个组件的版本,其实版本从maven的pom.xml中可以看到,我直接写成固定的就行,改成如下:

VERSION=3.1.0-SNAPSHOT
SCALA_VERSION=2.12
SPARK_HADOOP_VERSION=2.7.4
SPARK_HIVE=3.2

另外,我们为了执行下载的时候速度快些,我们把maven的仓库地址换掉:

<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>        </mirror>

再次编译,可以动了:

接下来就是等待了,编译完成之后会就可以看到我们的包了

一些编译过程中的小问题

  • FullGC的问题

编译这个工作需要多试几次,编译的时候我发现还有本身maven慢的问题

[hdfs@daas-service-01 ~]$ jps -ml
78904 org.codehaus.plexus.classworlds.launcher.Launcher -DzincPort=3030 clean package -DskipTests -Phadoop-2.6 -Phive -Phive-thriftserver -Pyarn -DskipTests
[hdfs@daas-service-01 ~]$ jstat -gcutil 78904 1000S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   71.26   0.00  21.62   9.53  91.05  95.86     80    4.021     7    2.064    6.08571.26   0.00  34.02   9.53  91.05  95.86     80    4.021     7    2.064    6.08571.26   0.00  43.84   9.53  91.05  95.86     80    4.021     7    2.064    6.08571.26   0.00  55.63   9.53  91.05  95.86     80    4.021     7    2.064    6.08571.26   0.00  73.30   9.53  91.05  95.86     80    4.021     7    2.064    6.08571.26   0.00  87.28   9.53  91.05  95.86     80    4.021     7    2.064    6.0850.00  77.58   3.99   9.53  91.06  95.69     81    4.090     7    2.064    6.1540.00  77.58  11.90   9.53  91.06  95.69     81    4.090     7    2.064    6.154

针对这种现象,我们适度调整JVM的参数:

export MAVEN_OPTS="-Xms12g -Xmx12g -XX:+UseG1GC"
[INFO] Compiling 10 Scala sources to /home/hdfs/Spark3.0/mllib-local/target/scala-2.12/test-classes ...
Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled.
Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize=
CodeCache: size=245760Kb used=243977Kb max_used=243996Kb free=1782Kbbounds [0x00002aae10000000, 0x00002aae1f000000, 0x00002aae1f000000]total_blobs=59407 nmethods=58763 adapters=539compilation: disabled (not enough contiguous free space left)

这个其实就是代码缓冲区满了,按照提示我们可以适度加大这个数值,几个参数一起配合就是:

export MAVEN_OPTS="-Xms12g -Xmx12g -XX:+UseG1GC -XX:ReservedCodeCacheSize=2g" 

感兴趣的朋友可以跟着试试,有什么问题,可以在评论区留言告诉我哦~

注:本文转自「CSDN博客」

原文链接:

https://blog.csdn.net/zhuxuemin1991/article/details/105161234

【End】

推荐阅读 

☞罗永浩直播首秀开卖小米 10;微信能转账 QQ;Ruby 2.7.1 发布 | 极客头条

☞154 万 AI 开发者用数据告诉你,中国 AI 如何才能弯道超车?| 中国 AI 应用开发者报告

☞2019报告:AI程序员人才需求暴涨35倍!每10个公司就有6个人才缺口

☞大龄程序员都去哪?分享我身边的几个故事

☞Spark3.0发布了,代码拉过来,打个包,跑起来!| 附源码编译

☞业内最大的“空气币”——以太坊???

你点的每一个在看,我认真当成了喜欢

Spark 3.0 发布了,代码拉过来,打个包,跑起来!| 附源码编译相关推荐

  1. vc++6.0:MFC写的一个汉字取模软件(附源码)

    vc++6.0:MFC写的一个汉字取模软件(附源码) 一.毕业有九年了,突然想起以前在大学时候用MFC写的一个汉字取模软件.主要的功能是在PC上获取汉字16X16点阵数据然后通过串口把点阵数据发送给A ...

  2. Spark3.0发布了,代码拉过来,打个包,跑起来!| 附源码编译

    作者 | 敏叔V587 责编 | 徐威龙 封图| CSDN 下载于视觉中国 Spark3.0已经发布有一阵子了,官方发布了预览版,带来了一大波更新,对于我们程序员来说,首先当然是代码拉过来,打个包,跑 ...

  3. 从0到1搭建一个简易的在线客服问答系统(附源码)

    前言 首先我们先了解下这个概念,什么叫做问答系统(Question Answering System,简称 QA 系统)? 其实问答系统是一个比较常见的系统,在医疗系统/电商系统/零售业等等行业中都比 ...

  4. Android开发之6.0动态权限工具类(高德地图官方扣出来的)附源码

    感觉这个权限申请类写的比较好. 使用方法:activity直接继承就可以了. 看下mainactivity.java package com.qfy.permissiondemo;import and ...

  5. java愤怒的小鸟代码_用java实现小游戏“愤怒的小鸟”附源码和效果演示

    推荐下我自己的群:6915 72518,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份最新资料和零基础入门教程!,欢迎初学和进阶中的小伙伴 今天跟大家分享一个用纯Java代 ...

  6. wallpaper代码_五行Python代码自动换你的电脑桌面壁纸(内附源码和exe)

    很多行友问行哥,Python能不能自动更换电脑壁纸呀,今天它来了 只需要一行代码,指定图片地址即可更换电脑桌面.加上壁纸文件夹路径,让你随机更换电脑桌面,带来不期而遇的新鲜.使用爬虫技术,自动下载壁纸 ...

  7. 微信团队回应“部分用户朋友圈无法刷新”;罗永浩:准备做综艺节目;Apache Spark 3.0 发布| 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

  8. python二手交易平台代码_PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)...

    说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...

  9. cmake 编译curl源码_OpenCV4.0 源码编译

    之前写过几篇关于OpenCV的博客,都是基于openCV 3.14写的,10月份OpenCV发布了4.0的bate版本,我就切换到4.0版本上来.之后的博客都会是基于4.0版本的.本文主要介绍一下三个 ...

最新文章

  1. 【SICP练习】94 练习2.67
  2. shell实例第15讲:俄罗斯方块游戏
  3. MySQL高级in和not in
  4. Effective Java之努力使失败保持原子性(六十四)
  5. pdf阅读器改背景色
  6. Android入门逆引手册 - 12 评分条(RatingBar)的使用
  7. 微信python课_微信课程提醒助手———python
  8. php array_search多条件,php使用array_search与array_column函数实现二维数组内元素查找...
  9. 大厂技术文档:Python 基础+爬虫+数据分析+面试经精选
  10. Python 命令行之旅:使用 argparse 实现 git 命令
  11. plt.text函数用法
  12. 常用计算机信息检索策略,信息检索的策略和方法
  13. 迪卡侬中国与阿里云达成合作;咖世家与恒天然在中国推出益生菌咖啡;默克高性能材料业务更名为电子科技 | 美通企业日报...
  14. Java操作word指定位置插入数据
  15. c语言怎样写积分程序,C语言实现定积分求解方法
  16. 计算机动漫学的什么软件,电脑动漫绘画哪个软件比较好?
  17. 腾讯技术团队整理,年度好文轻松彻底入门 Flutter,秒变大前端
  18. 鸿蒙系统登lol一直闪退,win8.1系统玩lol英雄联盟出现闪退解决方法
  19. python 连接数据库并批量生成数据
  20. 全球及中国地铁行业融资现状与十四五盈利前景分析报告2022版

热门文章

  1. 项目管理-软件开发模式对比(瀑布、迭代、螺旋、敏捷)
  2. DenyHosts安装及配置
  3. iOS的四种持久化存储
  4. mysql 优化技巧
  5. 质因数分解(0)P2012_1
  6. 如何用css实现类似简书的纵向导航/竖排导航
  7. 《数值分析》学习笔记 ·002——误差知识
  8. 低配本用win10服务器系统,低配电脑装win10最早版可以吗
  9. python中调用函数no module named 'utilities'_python错误:No module named setuptools 解决方法...
  10. 树-堆结构练习——合并果子之哈夫曼树(是最优二叉树题目的缩影)