好玩的大数据之49:Spark源码编译

一、简介


        利用Spark提供的源码生成自定义的Spark

二、下载


        1.从spark网站

        下载地址:http://spark.apache.org/downloads.html

                            https://archive.apache.org/dist/spark/

            下载得到:spark-3.0.0.tgz

            选版本

选版本
选文件

        2.从github下

        https://github.com/apache/spark

spark


download

三、安装


            tar zxvf spark-3.0.0.tgz

            源码在spark-3.0.0目录下

四、配置


            有两种编译方法

          1.利用maven编译和发布

                a) 设置maven的编译选项

                        vi ~/.bashrc

                                export MAVEN_OPTS="-Xmx4g -XX:ReservedCodeCacheSize=2g"

                        source ~/.bashrc

                b) 设置maven镜像加速

                    在pom.xml中

                    找<repositories>,在它的下面放入

<repository>

      <id>aliyun-public</id>

      <name>aliyun-public</name>

      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

      <releases>

        <enabled>true</enabled>

      </releases>

      <snapshots>

        <enabled>false</enabled>

      </snapshots>

    </repository>


    再找<pluginRepositories>,在它的下面放入

 <pluginRepository>

      <id>aliyun-public</id>

      <name>aliyun-public</name>

      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

      <releases>

        <enabled>true</enabled>

      </releases>

      <snapshots>

        <enabled>false</enabled>

      </snapshots>

    </pluginRepository>

          2.利用sbt编译和发布

                a) 设置maven的编译选项

                    在Spark源码的根目录建立一个叫.jvmopts(前面有个点)

                        vi .jvmopts

-Xmx2g

-XX:ReservedCodeCacheSize=1g

                b) 设置maven镜像加速

                    vi project/SparkBuild.scala

                找DefaultMavenRepository

#注释掉DefaultMavenRepository,变成如下形式

// DefaultMavenRepository,

      Resolver.url("aliyun", url("http://maven.aliyun.com/nexus/content/groups/public/")),

3.改变scala版本号

        1.改变版本号

                要想利用scala2.13编译,需要执行此脚本,默认是scala2.12

                将scala版本设为2.13

                    ./dev/change-scala-version.sh 2.13

                将scala版本设为2.12

                    ./dev/change-scala-version.sh 2.12

        2.enable the profile

                For Maven, please enable the profile (e.g. 2.13):

                        ./build/mvn -Pscala-2.13 compile

                        遇到错误了,还是乖乖的用scala2.12吧

                For SBT, specify a complete scala version using (e.g. 2.13.0):

                        ./build/sbt -Dscala.version=2.13.0

五、验证


          1.利用maven编译和发布

                a)编译

                    #Building With Hive support(hive 2.3.7)(可以通过调整pom.xml的版本号来修改默认值)

                            ./build/mvn -Pyarn -Phive -Phive-thriftserver -DskipTests clean package

                    #Building With Hive support(hadoop3.2.1,hive 2.3.7)

                            ./build/mvn -Pyarn -Phive -Phive-thriftserver -DskipTests -Dhadoop.version=3.2.1  clean package

                    #Building With Hive support(hadoop3.2.1,hive3.1.2)这个没有成功

                           ./build/mvn -Pyarn -Phive -Phive-thriftserver -DskipTests -Dhadoop.version=3.2.1 -Dhive.version=3.1.2 clean package

                    #Building with Mesos support

                            ./build/mvn -Pmesos -DskipTests clean package

                    #Building with Kubernetes support

                            ./build/mvn -Pkubernetes -DskipTests clean package


            b)发布

            ./dev/make-distribution.sh --help

帮助

                    #usage:

                    ./dev/make-distribution.sh [--name] [--tgz] [--pip] [--r] [--mvn <mvn-command>] <maven build options>

            例子:

#默认hadoop2.7.4,hive2.3.7(可以通过调整pom.xml的版本号来修改默认值)

./dev/make-distribution.sh --name hadoop3.2.1-hive --tgz

./dev/make-distribution.sh --name hadoop3.2.1-hive --tgz -Pyarn -Phive -Phive-thriftserver -DskipTests

#加入其他的组件(没有试过)

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes

          2.利用sbt编译和打包

                a)编译

                        ./build/sbt package

               b)发布

                        参见前面的./dev/make-distribution.sh 


六、参考


https://spark.apache.org/docs/latest/building-spark.html#packaging-without-hadoop-dependencies-for-yarn

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342