1. 程式人生 > >基於CentOS6.5編譯Spark2.2.0原始碼

基於CentOS6.5編譯Spark2.2.0原始碼

一、建立hadoop使用者及目錄

1 建立使用者
[root@hadoop000 ~]# useradd hadoop

2 設定密碼
[root@hadoop000 ~]# passwd hadoop

3 切換使用者 hadoop
[root@hadoop000 ~]# su - hadoop
[hadoop@hadoop000 ~]$ pwd
/home/hadoop

4 建立目錄
[hadoop@hadoop000 ~]$ mkdir app data software lib source
[hadoop@hadoop000 ~]$ ll
總用量 20
drwxrwxr-x 2 hadoop hadoop 4096 96
09:59 app drwxrwxr-x 2 hadoop hadoop 4096 96 09:59 data drwxrwxr-x 2 hadoop hadoop 4096 96 09:59 lib drwxrwxr-x 2 hadoop hadoop 4096 96 09:59 software drwxrwxr-x 2 hadoop hadoop 4096 96 09:59 source
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

二、編譯所需軟體安裝(JDK/MAVEN/SCALA/GIT)

http://spark.apache.org/docs/latest/building-spark.html
Building Apache Spark Apache Maven 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 8+. Note that support for Java 7 was removed as of Spark 2.2.0. 從官網得知編譯spark2.2.0需要JDK1.8+和maven 3.3.9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

**注:上傳的jdk maven scala 等安裝包都是用hadoop使用者安裝的, 
所以需執行chown -R hadoop:hadoop xxx.tar.gz來讓hadoop使用者擁有所有許可權**

將jdk解壓到hadoop使用者下app目錄
[hadoop@hadoop000 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C ~/app/

[hadoop@hadoop000 jdk1.8.0_144]$ pwd
/home/hadoop/app/jdk1.8.0_144

編輯 ~/.bash_profile新增以下兩行
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH

source ~/.bash_profile 使環境變數生效

驗證是否配置成功
[hadoop@hadoop000 jdk1.8.0_144]$ which java
~/app/jdk1.8.0_144/bin/java

[hadoop@hadoop000 jdk1.8.0_144]$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
解壓
[hadoop@hadoop000 maven-3.3.9]$ unzip apache-maven-3.3.9-bin.zip

移動到app目錄
[hadoop@hadoop000 maven-3.3.9]$ mv apache-maven-3.3.9 ~/app/

更名
[hadoop@hadoop000 maven-3.3.9]$ mv apache-maven-3.3.9/  maven-3.3.9/

檢視路徑
[hadoop@hadoop000 maven-3.3.9]$ pwd
/home/hadoop/app/maven-3.3.9

編輯環境變數,記得source生效
[hadoop@hadoop000 maven-3.3.9]$ vim ~/.bash_profile
export MAVEN_HOME=/home/hadoop/app/maven-3.3.9
export PATH=$MAVEN_HOME/bin:$PATH

驗證
[hadoop@hadoop000 maven-3.3.9]$ which mvn
~/app/maven-3.3.9/bin/mvn
[hadoop@hadoop000 maven-3.3.9]$ mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /home/hadoop/app/maven-3.3.9
Java version: 1.8.0_144, vendor: Oracle Corporation
Java home: /home/hadoop/app/jdk1.8.0_144/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-431.el6.x86_64", arch: "amd64", family: "unix"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
解壓到app目錄 
[hadoop@hadoop000 software]$ tar -zxvf scala-2.11.7.tgz -C ~/app/

檢視路徑
[hadoop@hadoop000 app]$ cd scala-2.11.7/
[hadoop@hadoop000 scala-2.11.7]$ pwd
/home/hadoop/app/scala-2.11.7

配置環境變數,記得source生效
[hadoop@hadoop000 scala-2.11.7]$ vim ~/.bash_profile
export SCALA_HOME=/home/hadoop/app/scala-2.11.7
export PATH=$SCALA_HOME/bin:$PATH

驗證
[hadoop@hadoop000 scala-2.11.7]$ scala -version
Scala code runner version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL

[hadoop@hadoop000 scala-2.11.7]$ scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_144).
Type in expressions to have them evaluated.
Type :help for more information.

scala>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

4、Git安裝(可選)

使用root在/etc/sudoers檔案下新增 hadoop ALL=(ALL)  ALL
[[email protected] bin]# vim /etc/sudoers
#Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
hadoop   ALL=(ALL)       ALL
:wq!強制儲存退出

hadoop使用者使用sudo許可權安裝git

[[email protected] scala-2.11.7]$  sudo yum -y install git
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.sohu.com
 * extras: mirrors.sohu.com
 * updates: mirrors.sohu.com
base                                                                                                             | 3.7 kB     00:00
base/primary_db                                                                                                  | 4.7 MB     00:07
http://192.168.95.10/iso/repodata/repomd.xml: [Errno 14] PYCURL ERROR 7 - "couldn't connect to host"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: centos-iso. Please verify its path and try again
[[email protected] scala-2.11.7]$  sudo yum -y install git
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.sohu.com
 * extras: mirrors.sohu.com
 * updates: mirrors.sohu.com
extras                                                                                                           | 3.4 kB     00:00
extras/primary_db                                                                                                |  29 kB     00:00
updates                                                                                                          | 3.4 kB     00:00
updates/primary_db                                                                                               | 3.1 MB     00:07
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.7.1-9.el6_9 will be installed
--> Processing Dependency: perl-Git = 1.7.1-9.el6_9 for package: git-1.7.1-9.el6_9.x86_64
--> Processing Dependency: perl(Git) for package: git-1.7.1-9.el6_9.x86_64
--> Processing Dependency: perl(Error) for package: git-1.7.1-9.el6_9.x86_64
--> Running transaction check
---> Package perl-Error.noarch 1:0.17015-4.el6 will be installed
---> Package perl-Git.noarch 0:1.7.1-9.el6_9 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================
 Package                         Arch                        Version                                 Repository                    Size
========================================================================================================================================
Installing:
 git                             x86_64                      1.7.1-9.el6_9                           updates                      4.6 M
Installing for dependencies:
 perl-Error                      noarch                      1:0.17015-4.el6                         base                          29 k
 perl-Git                        noarch                      1.7.1-9.el6_9                           updates                       29 k

Transaction Summary
========================================================================================================================================
Install       3 Package(s)

Total download size: 4.7 M
Installed size: 15 M
Downloading Packages:
(1/3): git-1.7.1-9.el6_9.x86_64.rpm                                                                              | 4.6 MB     00:08
(2/3): perl-Error-0.17015-4.el6.noarch.rpm                                                                       |  29 kB     00:00
(3/3): perl-Git-1.7.1-9.el6_9.noarch.rpm                                                                         |  29 kB     00:00
----------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                   560 kB/s | 4.7 MB     00:08
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
 Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6[email protected].org>
 Package: centos-release-6-5.el6.centos.11.1.x86_64 (@anaconda-CentOS-201311272149.x86_64/6.5)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 1:perl-Error-0.17015-4.el6.noarch                                                                                    1/3
  Installing : git-1.7.1-9.el6_9.x86_64                                                                                             2/3
  Installing : perl-Git-1.7.1-9.el6_9.noarch                                                                                        3/3
  Verifying  : 1:perl-Error-0.17015-4.el6.noarch                                                                                    1/3
  Verifying  : git-1.7.1-9.el6_9.x86_64                                                                                             2/3
  Verifying  : perl-Git-1.7.1-9.el6_9.noarch                                                                                        3/3

Installed:
  git.x86_64 0:1.7.1-9.el6_9

Dependency Installed:
  perl-Error.noarch 1:0.17015-4.el6                                   perl-Git.noarch 0:1.7.1-9.el6_9

Complete!
[[email protected] scala-2.11.7]$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91

三、開始編譯 
1、在開始編譯之前我們問一下自己為什麼要編譯?官網上不是有sprak安裝包嗎? 
官網上的確提供了一些Hadoop版本的Spark安裝包,但是我們的生產環境各異,提供的安裝包能滿足現實的環境要求嗎?答案肯定是否定的,所以我們需要編譯一個能夠整合到自己生產環境當中的Hadoop版本的Spark安裝包。

2、spark-2.2.0.tgz包下載 
http://spark.apache.org/downloads.html 
這裡寫圖片描述 
將下載好的安裝包解壓到hadoop使用者目錄下的source檔案中 
[[email protected] software]$ tar -zxvf spark-2.2.0.tgz -C ~/source/ 
解壓後目錄如下 
這裡寫圖片描述

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn
  • 1

引數說明: 
–name:指定編譯完成後Spark安裝包的名字 
–tgz:以tgz的方式進行壓縮 
-Psparkr:編譯出來的Spark支援R語言 
-Phadoop-2.4:以hadoop-2.4的profile進行編譯,具體的profile可以看出原始碼根目錄中的pom.xml中檢視 
-Phive和-Phive-thriftserver:編譯出來的Spark支援對Hive的操作 
-Pmesos:編譯出來的Spark支援執行在Mesos上 
-Pyarn:編譯出來的Spark支援執行在YARN上

那麼我們可以根據具體的條件來編譯Spark,比如我們使用的Hadoop版本是2.6.0-cdh5.7.0,並且我們需要將Spark執行在YARN上、支援對Hive的操作,那麼我們的Spark原始碼編譯指令碼就是: 
./dev/make-distribution.sh –name 2.6.0-cdh5.7.0 –tgz -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0 
編譯成功後,在Spark原始碼的根目錄中就spark-2.1.0-bin-2.6.0-cdh5.7.0.tgz包,那麼我們就可以使用編譯出來的這個安裝包來進行Spark的安裝了

4 、編譯前的修改

a. 在spark2.2.0根目錄下的pom.xml中的repository標籤內(219行)新增以下內容

 <repository>
    <id>cloudera</id>
    <name>cloudera repository</name>
    <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
  • 1
  • 2
  • 3
  • 4
  • 5

pom.xml中自定義的url是https://repo1.maven.org/maven2,這個url是Apache Hadop的倉庫地址。而我們編譯命令加了–name 2.6.0-cdh5.7.0,編譯出來的spark包支援整合到cdh5.7.0叢集中。如果不加以上url,編譯會報錯(自定義的url中沒有cdh的內容,大家可以把地址複製到瀏覽器中自測),加了以上內容後pom.xml自定義的url中找不到就會去我們定義的url找。

b.將./dev/make-distribution.sh指令碼的120-136行內容註釋掉,新增以下內容 
VERSION=2.2.0 
SCALA_VERSION=2.11 
SPARK_HADOOP_VERSION=2.6.0-cdh5.7.0 
SPARK_HIVE=1 
指令碼120-136行是校驗我們安裝的scala版本等資訊,我們把它註釋掉,直接告訴它我們安裝的版本可以提高編譯速度

5 、執行命令編譯 
./dev/make-distribution.sh –name 2.6.0-cdh5.7.0 –tgz -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0

編譯成功後在spark2.2.0根目錄會有一個 spark-2.1.0-bin-2.6.0-cdh5.7.0.tgz檔案

注意:在編譯過程中會出現下載某個依賴包的時間太久,這是由於網路問題,可以執行ctrl+c停止編譯命令,然後重新執行編譯命令,在編譯過程中多試幾次即可。有條件的小夥伴,建議開著VPN然後再進行編譯,整個編譯過程會順暢很多。

相關推薦

基於CentOS6.5編譯Spark2.2.0原始碼

一、建立hadoop使用者及目錄 1 建立使用者 [root@hadoop000 ~]# useradd hadoop 2 設定密碼 [root@hadoop000 ~]# passwd hadoop 3 切換使用者 hadoop [root@hadoop000 ~]

spark2.2.0 原始碼編譯安裝

1. Spark概述     Spark 是一個用來實現快速而通用的叢集計算的平臺。     在速度方面,Spark 擴充套件了廣泛使用的 MapReduce 計算模型,而且高效地支援更多計算模式,包括互動式查詢和流處理。 在處理大規模資料集時,速度是非常重要的。速度快就意

Elam的caffe筆記之配置篇:基於CentOS6.5 python3.6 CUDA8.0 cudnnv5.1 opencv3.1 下的caffe配置

Elam的caffe筆記之配置篇:基於CentOS6.5 python3.6 CUDA8.0 cudnnv5.1 opencv3.1 下的caffe配置 作為一個完完全全的linux小白,平時連cmd開啟資料夾都要百度的人,面對單獨配置caffe這個棘手任務,第一反應就是搜教程。

spark最新原始碼下載並匯入到開發環境下助推高質量程式碼(Scala IDEA for Eclipse和IntelliJ IDEA皆適用)(以spark2.2.0原始碼包為例)(圖文詳解)

  不多說,直接上乾貨! 前言     其實啊,無論你是初學者還是具備了有一定spark程式設計經驗,都需要對spark原始碼足夠重視起來。   本人,肺腑之己見,想要成為大資料的大牛和頂尖專家,多結合原始碼和操練程式設計。   好一段時間之前,寫過這篇部落格

spark2.2.0原始碼學習過程記錄:Day8

1、《apache spark 原始碼剖析》瀏覽第六、七、八、九章 後面的幾章中只准備學習其中的spark sql部分,所以首先全部瀏覽了一下,再回過頭來看第七章 2、讀《apache spark 原始碼剖析》第七章第1節、第2.1節 SQL語句在分析執行過程中會經理幾個

Elam的caffe筆記之配置篇(一):CentOS6.5編譯安裝gcc4.8.2

Elam的caffe筆記之配置篇(一):CentOS6.5編譯安裝gcc4.8.2 配置要求: 系統:centos6.5 目標:基於CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6介面的caffe框架 任何對linux處於入門級別的小白都應

Spark Streaming實時流處理筆記(1)——Spark-2.2.0原始碼編譯

1 下載原始碼 https://spark.apache.org/downloads.html 解壓 2 編譯原始碼 參考 https://www.imooc.com/article/18419 https://spark.apache.org/docs/2.2.2/bu

Spark-2.2.0原始碼編譯報錯

[INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] -----------------------------------------------

CentOS6.5 安裝 OpenFOAM-2.4.0

文章記錄本人安裝OpenFOAM的過程,因之前未了解該軟體安裝方法,依照OpenFOAM官網安裝說明也走了不少彎路,在安裝成功後即使記錄,也方便以後自己或者有需要的同學們作參考。 OpenFOAM簡介 OpenFOAM(英文 Open Source Fi

hive2.2.0原始碼編譯

編譯hive 2.2.0 筆者在window下面編譯過很多次一直沒有成功,今天修改到Linux下面編譯,如果有哪位大神在Windows下面編譯成功了請指導一下。 1、環境資訊 ideaIC-201

Centos6.5 編譯安裝Mysql 5.5.3.7

oca eight file ont libxml kconfig 最大值 fig toc 1、準備依賴包 yum install gcc* c++ * bison autoconfautomakezlib* libxml* ncurses-devellibmcrypt*

全新的閃念膠囊,OneStep 1.5 以及 BigBang 2.0 更新後的 Smartisan OS 3.6 體驗

win .com googl 下午 老羅 free 好的 作者 沒有 本文標簽: OneStep1.5 BigBang2.0 SmartisanOS3.6 閃念膠囊 隨著堅果手機的發布,Smartisan OS 也得到了例行更新。包括了全新的閃念膠囊,OneStep 1.5

Spark2.2.0 java在pom.xml 引入 mllib庫

引入 http mls pil mllib core pom .org spa <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"

spark2.2.0偽分布式

執行 .sh work export pan exp source p地址 全分布式 環境:   hadoop2.6.0   jdk1.8   ubuntu 14.04 64位 1 安裝scala環境 版本是scala-2.10.6,官網下載地址http://www.sca

centos6.5 編譯安裝pgsql9.4.4 和主從流復制

postgresql 編譯安裝 主從流復制## postgresql yum 源網站https://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/repoview/依賴包readline readline-devel zlib zlib-devel ncurses-

centos6.5編譯調試mysql-5.7.18

console basedir enable resolv store name 操作 enabled edi 下載mysql-community-5.7.18-1.el6.src.rpm # rpm -ivh mysql-community-5.7.18-1.el6.

centos6.5編譯安裝nginx

php 相關 oca module eve tar 瀏覽器 reat nss 一、下載nginx安裝包,官網下載中心http://nginx.org/download [[email protected] software]# wget http://nginx

Centos6.5下安裝cacti-0.8.7i

cacti安裝(初學者)(因為我是新手,在安裝時有很多大大小小的問題,我都在這裏備註上了,歡迎萌新們參考)Cacti功能Cacti是通過 snmpget來獲取數據,使用 RRDtool繪畫圖形,而且你完全可以不需要了解RRDtool復雜的參數。它提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀

spark 學習筆記-spark2.2.0

submit -- org hdf doc kpi jdk profile apach master:192.168.11.2 s1:192.168.11.3 s2 :192.168.11.4 共三個節點 第一步配置(三臺一樣) http://

騰訊雲服務器 Centos6.5 安裝 nginx1.12.0

-1 安全組 dev class scrip local pcr 我們 /usr 如果出現 CentOS ping: unknown host 的話,表示沒有配置dns vim /etc/sysconfig/network-scripts/ifcfg-eth** 添加如