Spark3.0发布了,代码拉过来,打个包,跑起来!| 附源码编译
作者 |?敏叔V587
責編 | 徐威龍
封圖|?CSDN 下載于視覺中國
Spark3.0已經(jīng)發(fā)布有一陣子了,官方發(fā)布了預(yù)覽版,帶來了一大波更新,對于我們程序員來說,首先當然是代碼拉過來,打個包,跑起來!!
源碼地址
Spark源碼是托管在github上面的,源碼地址:
Spark官方源碼 https://github.com/apache/spark
不過clone下了還是老費勁,不得琢磨琢磨微軟收購github之后這個中國的網(wǎng)速問題不知道他們怎么看,我在gitee上面直接也fork一份源碼,再進行clone。
gitee上Spark源碼 :
https://gitee.com/CodeGarden2019/spark
編譯和打包
作為一個過(被)來(虐)人,編譯之前需要做點工作,后續(xù)就順利很多。
直接編譯會出現(xiàn)下面的錯誤:
...... 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里面解壓好。
接下來我們執(zhí)行:
/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另外,我們?yōu)榱藞?zhí)行下載的時候速度快些,我們把maven的倉庫地址換掉:
<mirror><id>alimaven</id><name>aliyun?maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>????????</mirror>再次編譯,可以動了:
接下來就是等待了,編譯完成之后會就可以看到我們的包了
一些編譯過程中的小問題
FullGC的問題
編譯這個工作需要多試幾次,編譯的時候我發(fā)現(xiàn)還有本身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針對這種現(xiàn)象,我們適度調(diào)整JVM的參數(shù):
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)?這個其實就是代碼緩沖區(qū)滿了,按照提示我們可以適度加大這個數(shù)值,幾個參數(shù)一起配合就是:
export?MAVEN_OPTS="-Xms12g?-Xmx12g?-XX:+UseG1GC?-XX:ReservedCodeCacheSize=2g"?感興趣的朋友可以跟著試試,有什么問題,可以在評論區(qū)留言告訴我哦~
注:本文轉(zhuǎn)自「CSDN博客」
原文鏈接:https://blog.csdn.net/zhuxuemin1991/article/details/105161234
「AI大師課」是CSDN發(fā)起的“百萬人學(xué)AI”倡議下的重要組成部分,4月份AI大師課以線上技術(shù)峰會的形式推出,來自微軟、硅谷TigerGraph、北郵等產(chǎn)學(xué)界大咖就圖計算+機器學(xué)習(xí),語音技術(shù)、新基建+AI、AI+醫(yī)療等主題展開分享,掃描下方二維碼免費報名,限時再送299元「2020AI開發(fā)者萬人大會」門票一張。
推薦閱讀:一文教你如何使用 MongoDB 和 HATEOAS 創(chuàng)建 REST Web 服務(wù) 一個數(shù)據(jù)科學(xué)家需要哪些核心工具包? AI 開發(fā)者不容錯過的 20 個機器學(xué)習(xí)和數(shù)據(jù)科學(xué)網(wǎng)站 馬云為什么救援世界? 1分鐘售出5萬張票!電影節(jié)搶票技術(shù)揭秘 BTC重現(xiàn)“自由落體”式暴跌,原來是受這幾個因素影響? 真香,朕在看了!總結(jié)
以上是生活随笔為你收集整理的Spark3.0发布了,代码拉过来,打个包,跑起来!| 附源码编译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员:站在“自学”鄙视链顶端的王者
- 下一篇: 32岁被裁补偿N+2:“感谢裁我,让我翻