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


【注】

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

2、Spark編譯與部署將以CentOS 64位操作系統為基礎,主要是考慮到實際應用一般使用64位操作系統,內容分為三部分:基礎環境搭建、Hadoop編譯安裝和Spark編譯安裝,該環境作為后續實驗基礎;

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

1、運行環境說明

1.1 硬軟件環境

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

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

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

l  虛擬機運行環境:

Ø  JDK1.7.0_55 64

Ø  Hadoop2.2.0(需要編譯為64位)

Ø  Scala2.10.4

Ø  Spark1.1.0(需要編譯)

1.2 集群網絡環境

集群包含三個節點,節點之間可以免密碼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

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]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM