成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

基于CentOS6.4環(huán)境如何編譯Spark-2.1.0源碼-創(chuàng)新互聯(lián)

小編給大家分享一下基于CentOS6.4環(huán)境如何編譯Spark-2.1.0源碼,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供無(wú)極網(wǎng)站建設(shè)、無(wú)極做網(wǎng)站、無(wú)極網(wǎng)站設(shè)計(jì)、無(wú)極網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、無(wú)極企業(yè)網(wǎng)站模板建站服務(wù),十年無(wú)極做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

1 寫(xiě)在前面的話

有些小伙伴可能會(huì)問(wèn):Spark官網(wǎng)不是已經(jīng)提供了Spark針對(duì)不同版本的安裝包了嗎,我們?yōu)槭裁催€需要對(duì)Spark源碼進(jìn)行編譯呢?針對(duì)這個(gè)問(wèn)題我們到Spark官網(wǎng): spark.apache.org來(lái)看下,如下圖所示:
基于CentOS6.4環(huán)境如何編譯Spark-2.1.0源碼

Spark官網(wǎng)的確是提供了一些Hadoop版本的Spark安裝包,但是提供的這些是否能夠滿足我們的要求呢?答案肯定是否定的,根據(jù)本人近幾年做Spark的開(kāi)發(fā)經(jīng)驗(yàn),列出如下幾點(diǎn)

  • 在生產(chǎn)環(huán)境中Hadoop的選型,很大部分都是CDH或者HDP系列的,那么官方提供的這幾個(gè)Hadoop系列是否能夠生產(chǎn)的需求?

  • 在開(kāi)發(fā)過(guò)程中,我們經(jīng)常會(huì)遇到需要對(duì)Spark的源碼進(jìn)行修改,那么修改后的代碼如何集成到Spark安裝包中去呢?

針對(duì)如上列出的兩點(diǎn)的個(gè)人覺(jué)得比較好的最佳實(shí)踐:

  • 根據(jù)生產(chǎn)上運(yùn)行的Hadoop版本編譯出Spark的安裝包

  • 修改Spark源碼之后,重新編譯Spark

所以:個(gè)人覺(jué)得如果想更好的學(xué)習(xí)和使用Spark,那么第一步就是要會(huì)根據(jù)Spark源碼編譯出安裝包。

2 前置準(zhǔn)備

根據(jù)Spark官方文檔編譯模塊的介紹(http://spark.apache.org/docs/2.1.0/building-spark.html)的介紹:

The Maven-based build is the build of reference for Apache Spark. Building Spark using Maven requires Maven 3.3.9 or newer and Java 7+. Note that support for Java 7 is deprecated as of Spark 2.0.0 and may be removed in Spark 2.2.0.”

我們得知:

  • Java需要7+版本,而且在Spark2.0.0之后Java 7已經(jīng)被標(biāo)識(shí)成deprecated了,但是不影響使用,但是在Spark2.2.0版本之后Java 7的支持將會(huì)被移除;

  • Maven需要3.3.9+版本

2.1 Java7的安裝

2.1.1 下載

Java SE安裝包下載地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

本文章我們使用的JDK版本是:jdk1.7.0_51

2.1.2 安裝

我們所有的軟件都安裝在hadoop用戶的根目錄的app文件夾下

//解壓 tar -zxvf jdk-7u51-linux-x64.tar.gz -C ~/app

//將JDK目錄添加到系統(tǒng)環(huán)境變量(~/.bash_profile)中 export JAVA_HOME=/home/hadoop/app/jdk1.7.0_51 export PATH=$JAVA_HOME/bin:$PATH //讓配置文件生效 source ~/.bash_profile

//執(zhí)行java,查看java版本 java -version //如果安裝成功后,則有如下信息的輸出 java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

2.2 Maven3.3.9的安裝

2.2.1 下載

Maven3.3.9安裝包下載地址:https://mirrors.tuna.tsinghua.edu.cn/apache//maven/maven-3/3.3.9/binaries/

2.2.2 安裝

// 解壓 tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ~/app/ //將JDK目錄添加到系統(tǒng)環(huán)境變量(~/.bash_profile)中 export MAVEN_HOME=/home/hadoop/app/apache-maven-3.3.9 export PATH=$MAVEN_HOME/bin:$PATH //讓配置文件生效 source ~/.bash_profile

//執(zhí)行mvn,查看版本 mvn -v //如果安裝成功后,則有如下信息的輸出 Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T08:41:47-08:00) Maven home: /home/hadoop/app/apache-maven-3.3.9 Java version: 1.7.0_51, vendor: Oracle Corporation Java home: /home/hadoop/app/jdk1.7.0_51/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "2.6.32-358.el6.x86_64", arch: "amd64", family: "unix"

2.3 Spark-2.1.0源碼下載

下載地址:http://spark.apache.org/downloads.html
基于CentOS6.4環(huán)境如何編譯Spark-2.1.0源碼
下載完成后解壓即可,解壓后的目錄結(jié)構(gòu)如下圖所示
基于CentOS6.4環(huán)境如何編譯Spark-2.1.0源碼

3 Spark源碼編譯

查看官方文檔編譯源碼部分:http://spark.apache.org/docs/2.1.0/building-spark.html#building-a-runnable-distribution

我們可以使用Spark源碼目錄中的dev下的make-distribution.sh腳本,官方提供的編譯命令如下:

./dev/make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.4 -Phive -Phive-thriftserver -Pmesos -Pyarn

參數(shù)說(shuō)明:

  • --name:指定編譯完成后Spark安裝包的名字

  • --tgz:以tgz的方式進(jìn)行壓縮

  • -Psparkr:編譯出來(lái)的Spark支持R語(yǔ)言

  • -Phadoop-2.4:以hadoop-2.4的profile進(jìn)行編譯,具體的profile可以看出源碼根目錄中的pom.xml中查看

  • -Phive和-Phive-thriftserver:編譯出來(lái)的Spark支持對(duì)Hive的操作

  • -Pmesos:編譯出來(lái)的Spark支持運(yùn)行在Mesos上

  • -Pyarn:編譯出來(lái)的Spark支持運(yùn)行在YARN上

那么我們可以根據(jù)具體的條件來(lái)編譯Spark,比如我們使用的Hadoop版本是2.6.0-cdh6.7.0,并且我們需要將Spark運(yùn)行在YARN上、支持對(duì)Hive的操作,那么我們的Spark源碼編譯腳本就是:

./dev/make-distribution.sh --name 2.6.0-cdh6.7.0 --tgz -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh6.7.0

編譯成功后,在Spark源碼的根目錄中就spark-2.1.0-bin-2.6.0-cdh6.7.0.tgz包,那么我們就可以使用編譯出來(lái)的這個(gè)安裝包來(lái)進(jìn)行Spark的安裝了。

有小伙伴可能會(huì)問(wèn),為什么編譯出來(lái)的安裝包的名稱是spark-2.1.0-bin-2.6.0-cdh6.7.0.tgz呢?我們可以帶著這個(gè)疑惑,查看make-distribution.sh的源碼,在該腳本的最后部分,有如下代碼:

if [ "$MAKE_TGZ" == "true" ]; then TARDIR_NAME=spark-$VERSION-bin-$NAME
  TARDIR="$SPARK_HOME/$TARDIR_NAME" rm -rf "$TARDIR" cp -r "$DISTDIR" "$TARDIR" tar czf "spark-$VERSION-bin-$NAME.tgz" -C "$SPARK_HOME" "$TARDIR_NAME" rm -rf "$TARDIR" fi

該VERSION就是我們Spark的版本即2.1.0,NAME就是我們?cè)诰幾g時(shí)指定的2.6.0-cdh6.7.0,所以根據(jù)該腳本最終輸出的Spark安裝包的全稱為: spark-2.1.0-bin-2.6.0-cdh6.7.0.tgz。通過(guò)該代碼的查看希望大家能明白一個(gè)問(wèn)題:源碼面前,了無(wú)秘密。

注意:在編譯過(guò)程中會(huì)出現(xiàn)下載某個(gè)依賴包的時(shí)間太久,這是由于網(wǎng)絡(luò)問(wèn)題,可以執(zhí)行ctrl+c停止編譯命令,然后重新運(yùn)行編譯命令,在編譯過(guò)程中多試幾次即可。有條件的小伙伴,建議開(kāi)著VPN然后再進(jìn)行編譯,整個(gè)編譯過(guò)程會(huì)順暢很多。

看完了這篇文章,相信你對(duì)“基于CentOS6.4環(huán)境如何編譯Spark-2.1.0源碼”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

當(dāng)前標(biāo)題:基于CentOS6.4環(huán)境如何編譯Spark-2.1.0源碼-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://jinyejixie.com/article12/dedsgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、電子商務(wù)、網(wǎng)站維護(hù)外貿(mào)建站、虛擬主機(jī)、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)
林甸县| 永定县| 大悟县| 湖南省| 崇左市| 南华县| 烟台市| 盘山县| 海南省| 潜江市| 长春市| 张家川| 荣成市| 广灵县| 龙陵县| 大安市| 建昌县| 宜君县| 新田县| 安西县| 鄂尔多斯市| 丹江口市| 淮南市| 隆林| 无棣县| 苍溪县| 怀来县| 淮安市| 邵阳县| 濮阳市| 普宁市| 莱州市| 翁源县| 滁州市| 双鸭山市| 军事| 古交市| 绥化市| 昌黎县| 吉林省| 双柏县|