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

【注】

一、該系列文章以及使用到安裝包/測試數據 能夠在《傾情大奉送--Spark入門實戰系列》獲取;

二、Spark編譯與部署將以CentOS 64位操做系統爲基礎,主要是考慮到實際應用通常使用64位操做系統,內容分爲三部分:基礎環境搭建、Hadoop編譯安裝和Spark編譯安裝,該環境做爲後續實驗基礎;

三、文章演示了Hadoop、Spark的編譯過程,同時附屬資源提供了編譯好的安裝包,以爲編譯費時間能夠直接使用這些編譯好的安裝包進行部署。

一、運行環境說明

1.1 硬軟件環境

l  主機操做系統:Windows 64位,雙核4線程,主頻2.2G10G內存html

l  虛擬軟件:VMware® Workstation 9.0.0 build-812388java

l  虛擬機操做系統:CentOS6.5 64位,單核,1G內存linux

l  虛擬機運行環境:服務器

Ø  JDK1.7.0_55 64網絡

Ø  Hadoop2.2.0(須要編譯爲64位)oracle

Ø  Scala2.10.4app

Ø  Spark1.1.0(須要編譯)ssh

1.2 集羣網絡環境

集羣包含三個節點,節點之間能夠免密碼SSH訪問,節點IP地址和主機名分佈以下:ide

序號工具

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

hadoop

3

192.168.0.63

hadoop3

DN/NM/Worker

1/2G

hadoop

1.全部節點均是CentOS6.5 64bit系統,防火牆/SElinux均禁用,全部節點上均建立了一個hadoop用戶,用戶主目錄是/home/hadoop,上傳文件存放在/home/hadoop/upload文件夾中。

2.全部節點上均建立了一個目錄/app用於存放安裝程序,而且擁有者是hadoop用戶,對其必須有rwx權限(通常作法是root用戶在根目錄下建立/app目錄,並使用chown命令修改該目錄擁有者爲hadoop),不然hadoop用戶使用SSH往其餘機器分發文件會出現權限不足的提示

1.3 安裝使用工具

1.3.1 Linux文件傳輸工具

Linux系統傳輸文件推薦使用SSH Secure File Transfer,該工具頂部爲工具的菜單和快捷方式,中間部分左面爲本地文件目錄,右邊爲遠程文件目錄,能夠經過拖拽等方式實現文件的下載與上傳,底部爲操做狀況監控區,以下圖所示:

clip_image002[4]

1.3.2 Linux命令行執行工具

l  SSH Secure Shell  SSH Secure工具的SSH Secure Shell提供了遠程命令執行,以下圖所示:

clip_image004[4]

l  SecureCRT  SecureCRT是經常使用遠程執行Linux命令行工具,以下圖所示:

clip_image006[4]

2搭建樣板機環境

本次安裝集羣分爲三個節點,本節搭建樣板機環境搭建,搭建分爲安裝操做系統、設置系統環境和配置運行環境三個步驟。

2.1 安裝操做系統

第一步 插入CentOS 6.5的安裝介質,使用介質啓動電腦出現以下界面

clip_image008[4]

lInstall or upgrade an existing system 安裝或升級現有的系統 

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

lRescue installed system 進入系統修復模式

lBoot from local drive   退出安裝從硬盤啓動

lMemory test  內存檢測

第二步 介質檢測選擇"Skip",直接跳過

clip_image010[4]

第三步 出現引導界面,點擊「next

clip_image012[4]

第四步 選擇安裝過程語言,選中"EnglishEnglish"

clip_image014[4]

第五步 鍵盤佈局選擇「U.S.English

clip_image016[4]

第六步 選擇「Basic Storage Devies"點擊"Next"

clip_image018[4]

第七步 詢問是否覆寫全部數據,選擇"Yes,discard any data"

clip_image020[4]

第八步 Hostname填寫格式「英文名.姓」

clip_image022[4]

第九步 時區能夠在地圖上點擊,選擇「Shanghai」並取消System clock uses UTC選擇

clip_image024[4]

第十步 設置root的密碼

clip_image026[4]

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

clip_image028[4]

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

clip_image030[4]

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

clip_image032[4]

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

clip_image034[4]

第十五步 安裝完成,重啓

clip_image036[4]

第十六步 重啓以後,的License Information

clip_image038[4]

第十七步 建立用戶和設置密碼(這裏不進行設置用戶和密碼)

clip_image040[4]

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

Finsh以後系統將重啓

clip_image042[4]

2.2  設置系統環境

該部分對服務器的配置須要在服務器本地進行配置,配置完畢後須要重啓服務器確認配置是否生效,特別是遠程訪問服務器須要設置固定IP地址。

2.2.1 設置機器名

root用戶登陸,使用#vi /etc/sysconfig/network 打開配置文件,根據實際狀況設置該服務器的機器名,新機器名在重啓後生效

clip_image044[4]

2.2.2 設置IP地址

1. 點擊System-->Preferences-->Network Connections,以下圖所示:

clip_image046[4]

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虛擬機,網絡使用橋接模式,設置可以鏈接到互聯網中,以方便後面HadoopSpark編譯等試驗。

clip_image048[4]

3. 在命令行中,使用ifconfig命令查看設置IP地址信息,若是修改IP不生效,須要重啓機器再進行設置(若是該機器在設置後須要經過遠程訪問,建議重啓機器,確認機器IP是否生效):

clip_image050[4]

2.2.3設置Host映射文件

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

clip_image052[4]

2. 使用以下命令對網絡設置進行重啓

#/etc/init.d/network restart

或者 #service network restart

clip_image054[4]

3. 驗證設置是否成功

clip_image056[4]

2.2.4關閉防火牆

hadoop安裝過程當中須要關閉防火牆和SElinux,不然會出現異常

1. service iptables status 查看防火牆狀態,以下所示表示iptables已經開啓

clip_image058[4]

2. root用戶使用以下命令關閉iptables

#chkconfig iptables off

clip_image060[4]

2.2.5關閉SElinux

1. 使用getenforce命令查看是否關閉

clip_image062[4]

clip_image064[4]

2. 修改/etc/selinux/config 文件

SELINUX=enforcing改成SELINUX=disabled,執行該命令後重啓機器生效

#vi /etc/selinux/config

 

2.3 配置運行環境

2.3.1 更新OpenSSL

CentOS系統自帶的OpenSSL存在bug,若是不更新OpenSSLAmbari部署過程會出現沒法經過SSH鏈接節點,使用以下命令進行更新:

#yum update openssl

clip_image068[4]

 

clip_image070[4]

2.3.2 修改SSH配置文件

1. root用戶使用以下命令打開sshd_config配置文件

#vi /etc/ssh/sshd_config

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

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

clip_image072[4]

2. 配置後重啓服務

#service sshd restart

clip_image074[4]

2.3.3增長hadoop組和用戶

使用以下命令增長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

clip_image076[4]

建立hadoop用戶上傳文件目錄,設置該目錄組和文件夾爲hadoop

#mkdir /home/hadoop/upload

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

clip_image078[4]

2.3.4JDK安裝及配置

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,以下圖所示:

clip_image080[4]

 

2. 賦予hadoop用戶/usr/lib/java目錄可讀寫權限,使用命令以下:

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

clip_image082[4]

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

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

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

clip_image084[4]

解壓後目錄以下圖所示:

clip_image086[4]

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

clip_image088[4]

5. 從新登陸並驗證

$logout

$java -version

clip_image090[4]

2.3.5 Scala安裝及配置

1. 下載Scala安裝包

Scala2.10.4安裝包下載連接爲:http://www.scala-lang.org/download/2.10.4.html,由於在Scala2.11.4IDEA有些異常,故在這裏建議安裝Scala2.10.4版本

clip_image092[4]

2. 上傳Scala安裝文件

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

clip_image094[4]

3. 解壓縮

到上傳目錄下,用以下命令解壓縮:

$cd /home/hadoop/upload

$tar -zxf scala-2.10.4.tgz

clip_image096[4]

遷移到/app目錄下:

$sudo mv scala-2.10.4 /app/

4. 使用root用戶配置/etc/profile文件,並生效該配置

export SCALA_HOME=/app/scala-2.10.4

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

clip_image098[4]

5. 從新登陸並驗證

$exit

$scala -version

clip_image100[4]

3配置集羣環境

複製樣板機生成其餘兩個節點,按照規劃設置及其命名和IP地址,最後設置SSH無密碼登陸。

3.1 複製樣板機

複製樣板機兩份,分別爲hadoop2hadoop3節點

clip_image102[4]

3.2 設置機器名和IP地址

root用戶登陸,使用vi /etc/sysconfig/network 打開配置文件,根據1.2規劃修改機器名,修改機器名後須要從新啓動機器,新機器名在重啓後生效

clip_image104[4]

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

clip_image106[4]

3.3 配置SSH無密碼登陸

1. 使用hadoop用戶登陸在三個節點中使用以下命令生成私鑰和公鑰;

$ssh-keygen -t rsa

clip_image108[4]

2. 進入/home/hadoop/.ssh目錄在三個節點中分別把公鑰命名爲authorized_keys_hadoop1authorized_keys_hadoop2authorized_keys_hadoop3,使用命令以下:

$cd /home/hadoop/.ssh

$cp id_rsa.pub authorized_keys_hadoop1

clip_image110[4]

3. 把兩個從節點(hadoop2hadoop3)的公鑰使用scp命令傳送到hadoop1節點的/home/hadoop/.ssh文件夾中;

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

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

clip_image112[4]

clip_image114[4]

4. 把三個節點的公鑰信息保存到authorized_key文件中

使用$cat authorized_keys_hadoop1 >> authorized_keys 命令

clip_image116[4]

5. 把該文件分發到其餘兩個從節點上

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

clip_image118[4]

clip_image120[4]

6. 在三臺機器中使用以下設置authorized_keys讀寫權限

$chmod 400 authorized_keys

clip_image122[4]

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

clip_image124[4]

3.4 設置機器啓動模式(可選)

設置好集羣環境後,可讓集羣運行在命令行模式下,減小集羣所耗費的資源。以root用戶使用#vi /etc/inittab,將 id:5:initdefault: 改成 id:3:initdefault:

clip_image126[4]

Linux 系統任什麼時候候都運行在一個指定的運行級上,而且不一樣的運行級的程序和服務都不一樣,所要完成的工做和所要達到的目的都不一樣。CentOS設置了以下表所示的運行級,而且系統能夠在這些運行級別之間進行切換,以完成不一樣的工做。運行級說明

l  0 全部進程將被終止,機器將有序的中止,關機時系統處於這個運行級別

l  1 單用戶模式。用於系統維護,只有少數進程運行,同時全部服務也不啓動

l  2多用戶模式。和運行級別3同樣,只是網絡文件系統(NFS)服務沒被啓動

l  3多用戶模式。容許多用戶登陸系統,是系統默認的啓動級別

l  4留給用戶自定義的運行級別

l  5多用戶模式,而且在系統啓動後運行X-Window,給出一個圖形化的登陸窗口

l  6全部進程被終止,系統從新啓動

4問題解決

4.1 安裝CentOS64位虛擬機 This host supports Intel VT-x, but Intel VT-x is disabled

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

clip_image128[4]

F1 鍵進入BIOS 設置實用程序 使用箭頭鍵security面板下找virtualizationEnter 鍵 進去Intel  VirtualizationTechnology改爲EnabledF10 鍵保存並退出 選擇YesEnter 鍵 徹底關機(關閉電源)等待幾秒鐘從新啓動計算機此Intel虛擬化技術開啓成功

4.2  *** is not in the sudoers file解決方法

當使用hadoop用戶須要對文件夾進行賦權,使用chmod命令出現hadoop is not in the sudoers file.  This incident will be reported錯誤,以下所示:

clip_image130[4]

 

1. 使用su命令進入root用戶

clip_image132[4]

2. 添加文件的寫權限,操做命令爲:chmod u+w /etc/sudoers

clip_image134[4]

3. 編輯/etc/sudoers文件,使用命令"vi /etc/sudoers"進入編輯模式,找到:"root ALL=(ALL) ALL"在起下面添加"hadoop ALL=(ALL) ALL",而後保存退出。

clip_image136[4]

相關文章
相關標籤/搜索