l 主機操做系統:Windows 64位,雙核4線程,主頻2.2G,10G內存html
l 虛擬軟件:VMware® Workstation 9.0.0 build-812388java
l 虛擬機操做系統:CentOS6.5 64位,單核,1G內存linux
l 虛擬機運行環境:服務器
Ø JDK:1.7.0_55 64位網絡
Ø Hadoop:2.2.0(須要編譯爲64位)oracle
Ø Scala:2.10.4app
Ø Spark:1.1.0(須要編譯)ssh
集羣包含三個節點,節點之間能夠免密碼SSH訪問,節點IP地址和主機名分佈以下:ide
序號工具 |
機器名 |
類型 |
核數/內存 |
用戶名 |
目錄 |
|
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往其餘機器分發文件會出現權限不足的提示
向Linux系統傳輸文件推薦使用SSH Secure File Transfer,該工具頂部爲工具的菜單和快捷方式,中間部分左面爲本地文件目錄,右邊爲遠程文件目錄,能夠經過拖拽等方式實現文件的下載與上傳,底部爲操做狀況監控區,以下圖所示:
l SSH Secure Shell SSH Secure工具的SSH Secure Shell提供了遠程命令執行,以下圖所示:
l SecureCRT SecureCRT是經常使用遠程執行Linux命令行工具,以下圖所示:
本次安裝集羣分爲三個節點,本節搭建樣板機環境搭建,搭建分爲安裝操做系統、設置系統環境和配置運行環境三個步驟。
第一步 插入CentOS 6.5的安裝介質,使用介質啓動電腦出現以下界面
lInstall or upgrade an existing system 安裝或升級現有的系統
linstall system with basic video driver 安裝過程當中採用基本的顯卡驅動
lRescue installed system 進入系統修復模式
lBoot from local drive 退出安裝從硬盤啓動
lMemory test 內存檢測
第二步 介質檢測選擇"Skip",直接跳過
第三步 出現引導界面,點擊「next」
第四步 選擇安裝過程語言,選中"English(English)"
第五步 鍵盤佈局選擇「U.S.English」
第六步 選擇「Basic Storage Devies"點擊"Next"
第七步 詢問是否覆寫全部數據,選擇"Yes,discard any data"
第八步 Hostname填寫格式「英文名.姓」
第九步 時區能夠在地圖上點擊,選擇「Shanghai」並取消System clock uses UTC選擇
第十步 設置root的密碼
第十一步 硬盤分區,必定要按照圖示點選
第十二步 詢問是否改寫入到硬盤,選擇"Write changes to disk"
第十三步 選擇系統安裝模式爲"Desktop"
第十四步 桌面環境就設置完成了,點擊安裝
第十五步 安裝完成,重啓
第十六步 重啓以後,的License Information
第十七步 建立用戶和設置密碼(這裏不進行設置用戶和密碼)
第十八步 "Date and Time" 選中 「Synchronize data and time over the network」
Finsh以後系統將重啓
該部分對服務器的配置須要在服務器本地進行配置,配置完畢後須要重啓服務器確認配置是否生效,特別是遠程訪問服務器須要設置固定IP地址。
以root用戶登陸,使用#vi /etc/sysconfig/network 打開配置文件,根據實際狀況設置該服務器的機器名,新機器名在重啓後生效
1. 點擊System-->Preferences-->Network Connections,以下圖所示:
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編譯等試驗。
3. 在命令行中,使用ifconfig命令查看設置IP地址信息,若是修改IP不生效,須要重啓機器再進行設置(若是該機器在設置後須要經過遠程訪問,建議重啓機器,確認機器IP是否生效):
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
2. 使用以下命令對網絡設置進行重啓
#/etc/init.d/network restart
或者 #service network restart
3. 驗證設置是否成功
在hadoop安裝過程當中須要關閉防火牆和SElinux,不然會出現異常
1. service iptables status 查看防火牆狀態,以下所示表示iptables已經開啓
2. 以root用戶使用以下命令關閉iptables
#chkconfig iptables off
1. 使用getenforce命令查看是否關閉
2. 修改/etc/selinux/config 文件
將SELINUX=enforcing改成SELINUX=disabled,執行該命令後重啓機器生效
#vi /etc/selinux/config
CentOS系統自帶的OpenSSL存在bug,若是不更新OpenSSL在Ambari部署過程會出現沒法經過SSH鏈接節點,使用以下命令進行更新:
#yum update openssl
1. 以root用戶使用以下命令打開sshd_config配置文件
#vi /etc/ssh/sshd_config
開放三個配置,以下圖所示:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
2. 配置後重啓服務
#service sshd restart
使用以下命令增長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
建立hadoop用戶上傳文件目錄,設置該目錄組和文件夾爲hadoop
#mkdir /home/hadoop/upload
#chown -R hadoop:hadoop /home/hadoop/upload
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,以下圖所示:
2. 賦予hadoop用戶/usr/lib/java目錄可讀寫權限,使用命令以下:
$sudo chmod -R 777 /usr/lib/java
該步驟有可能遇到問題2.2,可參考解決辦法處理
3. 把下載的安裝包,使用1.1.3.1介紹的ssh工具上傳到/usr/lib/java 目錄下,使用以下命令進行解壓
$tar -zxvf jdk-7u55-linux-x64.tar.gz
解壓後目錄以下圖所示:
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
5. 從新登陸並驗證
$logout
$java -version
1. 下載Scala安裝包
Scala2.10.4安裝包下載連接爲:http://www.scala-lang.org/download/2.10.4.html,由於在Scala2.11.4下IDEA有些異常,故在這裏建議安裝Scala2.10.4版本
2. 上傳Scala安裝文件
把下載的scala安裝包使用SSH Secure File Transfer工具(如1.3.1介紹)上傳到/home/hadoop/upload目錄下,以下圖所示:
3. 解壓縮
到上傳目錄下,用以下命令解壓縮:
$cd /home/hadoop/upload
$tar -zxf scala-2.10.4.tgz
遷移到/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
5. 從新登陸並驗證
$exit
$scala -version
複製樣板機生成其餘兩個節點,按照規劃設置及其命名和IP地址,最後設置SSH無密碼登陸。
複製樣板機兩份,分別爲hadoop2和hadoop3節點
以root用戶登陸,使用vi /etc/sysconfig/network 打開配置文件,根據1.2規劃修改機器名,修改機器名後須要從新啓動機器,新機器名在重啓後生效
按照2.2.2配置方法修改機器IP地址
1. 使用hadoop用戶登陸在三個節點中使用以下命令生成私鑰和公鑰;
$ssh-keygen -t rsa
2. 進入/home/hadoop/.ssh目錄在三個節點中分別把公鑰命名爲authorized_keys_hadoop1、authorized_keys_hadoop2和authorized_keys_hadoop3,使用命令以下:
$cd /home/hadoop/.ssh
$cp id_rsa.pub authorized_keys_hadoop1
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
4. 把三個節點的公鑰信息保存到authorized_key文件中
使用$cat authorized_keys_hadoop1 >> authorized_keys 命令
5. 把該文件分發到其餘兩個從節點上
使用$scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh把密碼文件分發出去
6. 在三臺機器中使用以下設置authorized_keys讀寫權限
$chmod 400 authorized_keys
7. 測試ssh免密碼登陸是否生效
設置好集羣環境後,可讓集羣運行在命令行模式下,減小集羣所耗費的資源。以root用戶使用#vi /etc/inittab,將 id:5:initdefault: 改成 id:3:initdefault:
Linux 系統任什麼時候候都運行在一個指定的運行級上,而且不一樣的運行級的程序和服務都不一樣,所要完成的工做和所要達到的目的都不一樣。CentOS設置了以下表所示的運行級,而且系統能夠在這些運行級別之間進行切換,以完成不一樣的工做。運行級說明
l 0 全部進程將被終止,機器將有序的中止,關機時系統處於這個運行級別
l 1 單用戶模式。用於系統維護,只有少數進程運行,同時全部服務也不啓動
l 2多用戶模式。和運行級別3同樣,只是網絡文件系統(NFS)服務沒被啓動
l 3多用戶模式。容許多用戶登陸系統,是系統默認的啓動級別
l 4留給用戶自定義的運行級別
l 5多用戶模式,而且在系統啓動後運行X-Window,給出一個圖形化的登陸窗口
l 6全部進程被終止,系統從新啓動
在進行Hadoop2.X 64bit編譯安裝中因爲使用到64位虛擬機,安裝過程當中出現下圖錯誤:
按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」錯誤,以下所示:
1. 使用su命令進入root用戶
2. 添加文件的寫權限,操做命令爲:chmod u+w /etc/sudoers
3. 編輯/etc/sudoers文件,使用命令"vi /etc/sudoers"進入編輯模式,找到:"root ALL=(ALL) ALL"在起下面添加"hadoop ALL=(ALL) ALL",而後保存退出。