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

作者 | 敏叔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

「AI大师课」是CSDN发起的“百万人学AI”倡议下的重要组成部分,4月份AI大师课以线上技术峰会的形式推出,来自微软、硅谷TigerGraph、北邮等产学界大咖就图计算+机器学习,语音技术、新基建+AI、AI+医疗等主题展开分享,扫描下方二维码免费报名,限时再送299元「2020AI开发者万人大会」门票一张。

推荐阅读:一文教你如何使用 MongoDB 和 HATEOAS 创建 REST Web 服务
一个数据科学家需要哪些核心工具包?
AI 开发者不容错过的 20 个机器学习和数据科学网站
马云为什么救援世界?
1分钟售出5万张票!电影节抢票技术揭秘
BTC重现“自由落体”式暴跌,原来是受这几个因素影响?
真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?

今天&#xff0c;探讨一个有趣的话题&#xff1a;MySQL 单表数据达到多少时才需要考虑分库分表&#xff1f;有人说 2000 万行&#xff0c;也有人说 500 万行。那么&#xff0c;你觉得这个数值多少才合适呢&#xff1f; 曾经在中国互联网技术圈广为流传着这么一个说法&#xff1…

Java-构造器

一个类即使什么都不写&#xff0c;它也会存在一个方法 package oop.demo02;/*** author blake.wang* date 2021-04-19 18:58*/ public class Person {// 一个类即使什么都不写&#xff0c;它也会存在一个方法&#xff0c;具体可以看一个空 类 的编译后的class文件// 显示的定…

IntelliJ IDEA 2020 基础设置

文章目录1. 字体设置2. 编码设置3. jdk设置4. 自动引入包和删除无用引入的包5. 打开文件左右联动定位1. 字体设置 菜单字体 编辑区 控制台 收缩自如 2. 编码设置 3. jdk设置 4. 自动引入包和删除无用引入的包 5. 打开文件左右联动定位

跟面试官侃半小时MySQL事务隔离性,从基本概念深入到实现

来源 | 阿丸笔记提到MySQL的事务&#xff0c;我相信对MySQL有了解的同学都能聊上几句&#xff0c;无论是面试求职&#xff0c;还是日常开发&#xff0c;MySQL的事务都跟我们息息相关。而事务的ACID&#xff08;即原子性Atomicity、一致性Consistency、隔离性Isolation、持久性D…

Java-封装

// 类 public class Student {// 属性私有private String name; // 名字private int id; // 学号private char sex; // 性别private int age; // 年龄// 提供一些可以操作这个属性的方法// 提供一些 public 的 get \ set 方法// get 获得这个数据public String getName(){r…

一条数据的漫游奇遇记

数据库存储引擎是一个有历史的技术&#xff0c;经过数十年的发展&#xff0c;已经出现很多优秀成熟的产品。阿里巴巴 X-Engine 团队撰写的论文 "X-Engine: An Optimized Storage Engine for Large-scale E-Commerce Transaction Processing"&#xff0c;详细讲述了团…

idea 编辑区设置

文章目录1. 显示行号2. tabs位置3. tabs排序4.tabs数量5.1. 显示行号 2. tabs位置 3. tabs排序 鼠标按住上下拖拽 按字母排序 4.tabs数量 5.

支付宝玉伯:从前端到体验,如何把格局做大

国内的前端行业&#xff0c;是一个群星璀璨&#xff0c;同时又有些纷纷扰扰的圈子。很多初出茅庐的年轻人怀着改变世界的梦想&#xff0c;谁也不服谁。不过&#xff0c;有一些为前端领域做出贡献的拓荒者几乎受到所有人的尊敬&#xff0c;玉伯就是这些拓荒者中的一员。 如今&am…

Java-继承

一个父类可以有多个子类&#xff0c;但是一个子类只能有一个父类 Person // 在java中&#xff0c;所有的类&#xff0c;都直接或者间接继承Object类 // person 人 父类 public class Person {// public > protected > default > private// public// protected --…

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

就在最近&#xff0c;斯坦福大学AI研究所发布了《 2019 年 AI 指数报告》&#xff0c;其中一条数字让笔者震惊&#xff1a;58&#xff05; 的受访大公司表示&#xff0c;2019 年至少在一个业务部门采用了 AI那就是说&#xff0c;近半数以上的公司都需要AI人才&#xff01;但是现…

高效代码编辑功能

文章目录1. 行内跳转和选中2. 文件快速切换3. 查看最近查看过的文件4. 打开文件所在文件夹5.导航栏文件切换6. 查找和替换1. 行内跳转和选中 home跳转当前行首 end跳转当前行尾 按住ctrl左右快速按照单词跳转 按住ctrlshrift左右快速选中 2. 文件快速切换 alt左右 3. 查看最…

AnalyticDB for PG 如何作为数据源对接帆软 FineBI

AnalyticDB for PostgreSQL 基于开源数据库 Greenplum 构建&#xff0c;兼容Greenplum 和 PostgreSQL 的语法&#xff0c;接口和生态。本章节介绍如何通过FineBI连接 分析型数据库PostgreSQL版 并进行报表开发。 准备工作 开始使用FineBI之前&#xff0c;用户需要先完成以下准…

推出超低功耗数字式热释电传感器,翠展微电子厉害了……

近日&#xff0c;翠展微电子宣布推出了一款针对人体被动红外&#xff08;PIR&#xff09;应用的超低功耗数字芯片M1601。 据了解该方案通过热释电红外传感器以非接触方式检测出人体辐射的信号&#xff0c;并将该信号转换成电信号输入到芯片中进行信号处理。芯片的工作电流极低…

云上的Growth hacking之路,打造产品的增长引擎

增长关乎产品的存亡 增长&#xff01;增长&#xff01;增长&#xff01;业务增长是每一个创业者每天面临的最大问题。无论你的产品是APP&#xff0c;还是web&#xff0c;或者是小程序&#xff0c;只能不断的维持用户的增长&#xff0c;才能向资本市场讲出一个好故事&#xff0…

在容器上构建持续部署及最佳实践初探

作者 | 倚天码农责编| 徐威龙封图| CSDN下载于视觉中国要想理解持续集成和持续部署&#xff0c;先要了解它的部分组成&#xff0c;以及各个组成部分之间的关系。下面这张图是我见过的最简洁、清晰的持续部署和集成的关系图。图源&#xff1a;sonatype.com持续部署如图所示&…

阿里开源!云原生应用自动化引擎 OpenKruise | 直击 KubeCon

在近期开展的 KubeCon China 2019 上&#xff0c;阿里云将陆续为全球用户分享阿里巴巴超大规模云原生落地实践、云原生前沿技术与应用包括 OpenKruise 开源项目、开放云原生应用中心&#xff08;Cloud Native App Hub&#xff09;&#xff0c;同时将重磅发布边缘容器、云原生应…

Java-方法重写

方法重写只针对非静态方法&#xff0c;且不能是 private 类型的 如果是静态方法 // 重写都是方法的重写&#xff0c;和属性无关 public class B {public static void test() {System.out.println("B>test()");} }// 继承 public class A extends B{public stati…

数据库设计的 10 个最佳实践

作者 | Emily Williamson译者 | 孙薇&#xff0c;责编 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;以下为译文&#xff1a;数据库是应用及计算机的核心元素&#xff0c;负责存储运行软件应用所需的一切重要数据。为了保障应用正常运行&#xff0c;总有一…

从未如此简单:10分钟带你逆袭Kafka!

来源 | 51CTO 技术栈作者 | 故事凌封图| CSDN下载于视觉中国Apache Kafka 是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统&#xff0c; 使用 Scala 与 Java 语言编写&#xff0c;能够将消息从一个端点传递到另一个端点。较之传统的消息中间件&#xff0…

GMTC2019|闲鱼-基于Flutter的架构演进与创新

2012年应届毕业加入阿里巴巴&#xff0c;主导了闲鱼基于Flutter的新混合架构&#xff0c;同时推进了Flutter在闲鱼各业务线的落地。未来将持续关注终端技术的演变及趋势 Flutter的优势与挑战 Flutter是Google开源的跨端便携UI工具包&#xff0c;除了具有非常优秀的跨端渲染一致…