基於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 9月 6 09:59 app
drwxrwxr-x 2 hadoop hadoop 4096 9月 6 09:59 data
drwxrwxr-x 2 hadoop hadoop 4096 9月 6 09:59 lib
drwxrwxr-x 2 hadoop hadoop 4096 9月 6 09:59 software
drwxrwxr-x 2 hadoop hadoop 4096 9月 6 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** 添加如