天天看點

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

l  主機作業系統:Windows 64位,雙核4線程,主頻2.2G,10G記憶體

l  虛拟軟體:VMware® Workstation 9.0.0 build-812388

l  虛拟機作業系統:CentOS6.5 64位,單核,1G記憶體

l  虛拟機運作環境:

Ø  JDK:1.7.0_55 64位

Ø  Hadoop:2.2.0(需要編譯為64位)

Ø  Scala:2.10.4

Ø  Spark:1.1.0(需要編譯)

叢集包含三個節點,節點之間可以免密碼SSH通路,節點IP位址和主機名分布如下:

序号

IP位址

機器名

類型

核數/記憶體

使用者名

目錄

1

192.168.0.61

hadoop1

NN/DN/RM

Master/Worker

1核/3G

hadoop

/app 程式所在路徑

/app/scala-...

/app/hadoop

/app/complied

2

192.168.0.62

hadoop2

DN/NM/Worker

1核/2G

3

192.168.0.63

hadoop3

1.所有節點均是CentOS6.5 64bit系統,防火牆/SElinux均禁用,所有節點上均建立了一個hadoop使用者,使用者主目錄是/home/hadoop,上傳檔案存放在/home/hadoop/upload檔案夾中。

2.所有節點上均建立了一個目錄/app用于存放安裝程式,并且擁有者是hadoop使用者,對其必須有rwx權限(一般做法是root使用者在根目錄下建立/app目錄,并使用chown指令修改該目錄擁有者為hadoop),否則hadoop使用者使用SSH往其他機器分發檔案會出現權限不足的提示

向Linux系統傳輸檔案推薦使用SSH Secure File Transfer,該工具頂部為工具的菜單和快捷方式,中間部分左面為本地檔案目錄,右邊為遠端檔案目錄,可以通過拖拽等方式實作檔案的下載下傳與上傳,底部為操作情況監控區,如下圖所示:

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

l  SSH Secure Shell  SSH Secure工具的SSH Secure Shell提供了遠端指令執行,如下圖所示:

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

l  SecureCRT  SecureCRT是常用遠端執行Linux指令行工具,如下圖所示:

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

本次安裝叢集分為三個節點,本節搭建樣闆機環境搭建,搭建分為安裝作業系統、設定系統環境和配置運作環境三個步驟。

第一步 插入CentOS 6.5的安裝媒體,使用媒體啟動電腦出現如下界面

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

lInstall or upgrade an existing system 安裝或更新現有的系統 

linstall system with basic video driver 安裝過程中采用基本的顯示卡驅動 

lRescue installed system 進入系統修複模式

lBoot from local drive   退出安裝從硬碟啟動

lMemory test  記憶體檢測

第二步 媒體檢測選擇"Skip",直接跳過

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第三步 出現引導界面,點選“next”

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第四步 選擇安裝過程語言,選中"English(English)"

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第五步 鍵盤布局選擇“U.S.English”

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第六步 選擇“Basic Storage Devies"點選"Next"

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第七步 詢問是否覆寫所有資料,選擇"Yes,discard any data"

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第八步 Hostname填寫格式“英文名.姓”

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第九步 時區可以在地圖上點選,選擇“Shanghai”并取消System clock uses UTC選擇

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第十步 設定root的密碼

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第十一步 硬碟分區,一定要按照圖示點選

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第十二步 詢問是否改寫入到硬碟,選擇"Write changes to disk"

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第十三步 選擇系統安裝模式為"Desktop"

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第十四步 桌面環境就設定完成了,點選安裝

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第十五步 安裝完成,重新開機

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第十六步 重新開機之後,的License Information

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第十七步 建立使用者和設定密碼(這裡不進行設定使用者和密碼)

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

第十八步 "Date and Time" 選中 “Synchronize data and time over the network”

Finsh之後系統将重新開機

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

該部分對伺服器的配置需要在伺服器本地進行配置,配置完畢後需要重新開機伺服器确認配置是否生效,特别是遠端通路伺服器需要設定固定IP位址。

以root使用者登入,使用#vi /etc/sysconfig/network 打開配置檔案,根據實際情況設定該伺服器的機器名,新機器名在重新開機後生效

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

1. 點選System-->Preferences-->Network Connections,如下圖所示:

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

2. 修改或重建網絡連接配接,設定該連接配接為手工方式,設定如下網絡資訊:

      IP位址:    192.168.0.61

      子網路遮罩: 255.255.255.0

      網關:     192.168.0.1

      DNS:     221.12.1.227 (需要根據所在地設定DNS伺服器)

      【注意】

1、網關、DNS等根據所在網絡實際情況進行設定,并設定連接配接方式為"Available to all users",否則通過遠端連接配接時會在伺服器重新開機後無法連接配接伺服器;

2、如果是運作在VM Ware虛拟機,網絡使用橋接模式,設定能夠連接配接到網際網路中,以友善後面Hadoop和Spark編譯等試驗。

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

3. 在指令行中,使用ifconfig指令檢視設定IP位址資訊,如果修改IP不生效,需要重新開機機器再進行設定(如果該機器在設定後需要通過遠端通路,建議重新開機機器,确認機器IP是否生效):

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

1. 使用root身份編輯/etc/hosts映射檔案,設定IP位址與機器名的映射,設定資訊如下:

#vi /etc/hosts

l 192.168.0.61 hadoop1

l 192.168.0.62 hadoop2

l 192.168.0.63 hadoop3

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

2. 使用如下指令對網絡設定進行重新開機

#/etc/init.d/network restart

或者 #service network restart

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

3. 驗證設定是否成功

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

在hadoop安裝過程中需要關閉防火牆和SElinux,否則會出現異常

1. service iptables status 檢視防火牆狀态,如下所示表示iptables已經開啟

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

2. 以root使用者使用如下指令關閉iptables

#chkconfig iptables off

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

1. 使用getenforce指令檢視是否關閉

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列
Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

2. 修改/etc/selinux/config 檔案

将SELINUX=enforcing改為SELINUX=disabled,執行該指令後重新開機機器生效

#vi /etc/selinux/config

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

CentOS系統自帶的OpenSSL存在bug,如果不更新OpenSSL在Ambari部署過程會出現無法通過SSH連接配接節點,使用如下指令進行更新:

#yum update openssl

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列
Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

1. 以root使用者使用如下指令打開sshd_config配置檔案

#vi /etc/ssh/sshd_config

開放三個配置,如下圖所示:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

2. 配置後重新開機服務

#service sshd restart

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

使用如下指令增加hadoop 組和hadoop 使用者(密碼),建立hadoop元件存放目錄

#groupadd -g 1000 hadoop

#useradd -u 2000 -g hadoop hadoop

#mkdir -p /app/hadoop

#chown -R hadoop:hadoop /app/hadoop

#passwd hadoop

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

建立hadoop使用者上傳檔案目錄,設定該目錄組和檔案夾為hadoop

#mkdir /home/hadoop/upload

#chown -R hadoop:hadoop /home/hadoop/upload

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

1. 下載下傳JDK1.7 64bit安裝包

打開JDK1.7 64bit安裝包下載下傳連結為:

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

打開界面之後,先選中 Accept License Agreement ,然後下載下傳 jdk-7u55-linux-x64.tar.gz,如下圖所示:

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

2. 賦予hadoop使用者/usr/lib/java目錄可讀寫權限,使用指令如下:

$sudo chmod -R 777 /usr/lib/java

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

該步驟有可能遇到問題2.2,可參考解決辦法處理

3. 把下載下傳的安裝包,使用1.1.3.1介紹的ssh工具上傳到/usr/lib/java 目錄下,使用如下指令進行解壓

$tar -zxvf jdk-7u55-linux-x64.tar.gz

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

解壓後目錄如下圖所示:

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

4. 使用root使用者配置/etc/profile檔案,并生效該配置

export JAVA_HOME=/usr/lib/java/jdk1.7.0_55

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

5. 重新登入并驗證

$logout

$java -version

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

1. 下載下傳Scala安裝包

Scala2.10.4安裝包下載下傳連結為:http://www.scala-lang.org/download/2.10.4.html,因為在Scala2.11.4下IDEA有些異常,故在這裡建議安裝Scala2.10.4版本

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

2. 上傳Scala安裝檔案

把下載下傳的scala安裝包使用SSH Secure File Transfer工具(如1.3.1介紹)上傳到/home/hadoop/upload目錄下,如下圖所示:

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

3. 解壓縮

到上傳目錄下,用如下指令解壓縮:

$cd /home/hadoop/upload

$tar -zxf scala-2.10.4.tgz

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

遷移到/app目錄下:

$sudo mv scala-2.10.4 /app/

export SCALA_HOME=/app/scala-2.10.4

export PATH=$PATH:${SCALA_HOME}/bin

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

$exit

$scala -version

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

複制樣闆機生成其他兩個節點,按照規劃設定及其命名和IP位址,最後設定SSH無密碼登入。

複制樣闆機兩份,分别為hadoop2和hadoop3節點

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

以root使用者登入,使用vi /etc/sysconfig/network 打開配置檔案,根據1.2規劃修改機器名,修改機器名後需要重新啟動機器,新機器名在重新開機後生效

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

按照2.2.2配置方法修改機器IP位址

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

1. 使用hadoop使用者登入在三個節點中使用如下指令生成私鑰和公鑰;

$ssh-keygen -t rsa

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

2. 進入/home/hadoop/.ssh目錄在三個節點中分别把公鑰命名為authorized_keys_hadoop1、authorized_keys_hadoop2和authorized_keys_hadoop3,使用指令如下:

$cd /home/hadoop/.ssh

$cp id_rsa.pub authorized_keys_hadoop1

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

3. 把兩個從節點(hadoop2、hadoop3)的公鑰使用scp指令傳送到hadoop1節點的/home/hadoop/.ssh檔案夾中;

$scp authorized_keys_hadoop2 hadoop@hadoop1:/home/hadoop/.ssh

$scp authorized_keys_hadoop3 hadoop@hadoop1:/home/hadoop/.ssh

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列
Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

4. 把三個節點的公鑰資訊儲存到authorized_key檔案中

使用$cat authorized_keys_hadoop1 >> authorized_keys 指令

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

5. 把該檔案分發到其他兩個從節點上

使用$scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh把密碼檔案分發出去

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列
Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

6. 在三台機器中使用如下設定authorized_keys讀寫權限

$chmod 400 authorized_keys

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

7. 測試ssh免密碼登入是否生效

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

設定好叢集環境後,可以讓叢集運作在指令行模式下,減少叢集所耗費的資源。以root使用者使用#vi /etc/inittab,将 id:5:initdefault: 改為 id:3:initdefault:

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

Linux 系統任何時候都運作在一個指定的運作級上,并且不同的運作級的程式和服務都不同,所要完成的工作和所要達到的目的都不同。CentOS設定了如下表所示的運作級,并且系統可以在這些運作級别之間進行切換,以完成不同的工作。運作級說明

l  0 所有程序将被終止,機器将有序的停止,關機時系統處于這個運作級别

l  1 單使用者模式。用于系統維護,隻有少數程序運作,同時所有服務也不啟動

l  2多使用者模式。和運作級别3一樣,隻是網絡檔案系統(NFS)服務沒被啟動

l  3多使用者模式。允許多使用者登入系統,是系統預設的啟動級别

l  4留給使用者自定義的運作級别

l  5多使用者模式,并且在系統啟動後運作X-Window,給出一個圖形化的登入視窗

l  6所有程序被終止,系統重新啟動

在進行Hadoop2.X 64bit編譯安裝中由于使用到64位虛拟機,安裝過程中出現下圖錯誤:

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

按F1 鍵進入BIOS 設定實用程式 使用箭頭鍵security面闆下找virtualization按Enter 鍵 進去Intel  VirtualizationTechnology改成Enabled按F10 鍵儲存并退出 選擇Yes按Enter 鍵 完全關機(關閉電源)等待幾秒鐘重新啟動計算機此Intel虛拟化技術開啟成功

當使用hadoop使用者需要對檔案夾進行賦權,使用chmod指令出現“hadoop is not in the sudoers file.  This incident will be reported”錯誤,如下所示:

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

1. 使用su指令進入root使用者

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

2. 添加檔案的寫權限,操作指令為:chmod u+w /etc/sudoers

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

3. 編輯/etc/sudoers檔案,使用指令"vi /etc/sudoers"進入編輯模式,找到:"root ALL=(ALL) ALL"在起下面添加"hadoop ALL=(ALL) ALL",然後儲存退出。

Spark入門實戰系列--2.Spark編譯與部署(上)--基礎環境搭建 傾情大奉送--Spark入門實戰系列

作者:石山園  出處:http://www.cnblogs.com/shishanyuan/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。如果覺得還有幫助的話,可以點一下右下角的【推薦】,希望能夠持續的為大家帶來好的技術文章!想跟我一起進步麼?那就【關注】我吧。