Hadoop-2.4.1叢集搭建步驟
首先說明,博主以前也沒學過Hadoop,更別提Linux。只不過買了點資料,覺得不看也是浪費,索性找了時間學習了一下,別說,還真是吸引人。
言歸正傳,博主機器:筆記本 Y50-70 美版的
搭建環境:VM11(VMware Workstation 11),使用的是CenOS 6.5 64位
所需軟體:SecureCRT
1.先在VM上安裝Linux虛
1.1 開啟檔案----新建虛擬機器-----自定義(高階)-----按下一步,然後選擇稍後安裝系統
1.2 選擇機器配置
1.3 選擇網路型別,使用僅主機模式,因為這樣可以使用靜態IP,以免造成IP變動引起的無法解析hosts檔案對映問題
1.4 選擇磁碟容量大小後,按下一步完成,然後該虛擬機器,在CD/DVD光碟機中載入你的CentOS6.5映象檔案
1.6 啟動VM虛擬機器,進行Linux安裝,進入安裝頁面後會出現Media Test 此時選擇SKIP 直接進行安裝,然後一直按下一步,出現如下顯示資訊,選擇Yes,discard any data,下面的hostname你按自己喜歡的來設定,其餘的時間地點什麼的你自己選,root密碼自己設定(別忘記就行),wirte changes to disks.
以上安裝完成,然後克隆這個虛擬機器,克隆兩個。
2.進入虛擬機器,進行IP設定以及檔案修改。另外兩臺虛擬機器也照這樣修改,不過IP地址你自己設定,不要一樣就行
2.1 進行IP設定等
2.2 修改eth0配置檔案 ,將onboot=no改為yes即可,
2.3 建立hadoop執行賬戶
即為hadoop叢集專門設定一個使用者組及使用者,這部分比較簡單,參考示例如下:
sudo groupadd hadoop //設定hadoop使用者組
sudo useradd –s /bin/bash –d /home/ding –m ding –g hadoop –G root //新增一個ding使用者,此使用者屬於hadoop使用者組,且具有root許可權。
sudo passwd ding //設定使用者ding登入密碼
su ding //
system----Administration-----Users and Groups
2.4 修改host檔案 三臺hosts檔案都一樣
關閉防火牆
#檢視防火牆狀態
service iptables status
#關閉防火牆
service iptables stop
#檢視防火牆開機啟動狀態
chkconfig iptables --list
#關閉防火牆開機啟動
chkconfig iptables off
克隆完的每臺虛擬機器需要修改下主機名:
vi /etc/sysconfig/network
hostname=XXXX 即是你的主機名
命令:vi /etc/hosts (PS:我換了另外一臺虛擬機器 所以IP地址跟上面有所區別 不過意思不變)
我的三臺主機名:
2.5 為了操作便捷,轉戰SecureCRT這個軟體
hostname填入你的IP地址,username填入你的hadoop使用者組裡面的,例如:hostname:192.168.0.120 username :ding
其餘兩個虛擬機器連線也這麼幹
3.配置SSH無密碼登入
PS:每個機器的hosts檔案都要設定好,且要一樣的啊
3.1 產生金鑰
在secureCRT鍵入 cd .ssh 命令 進入.ssh隱藏資料夾 (隱藏資料夾 使用 ll -a 才會顯示出來)
鍵入命令 ssh-keygen -t rsa
其餘2個虛擬機器也進行如此步驟
3.2 將master的公鑰複製給node01和node02,這裡說下ssh無密碼登入的原理:
也就是說A想要無密碼登入B,必須要將自己的公鑰發給B,B將其加入到授權列表才行
在node01、node02主機上將master主機上的公鑰複製過來
例如在node01上將master上的公鑰複製到node01上來,此操作是在node01主機上完成
命令:scp [email protected]:~/.ssh/id_rsa.pub ./master_rsa.pub //此命令是將master主機上,資料夾.ssh下的id_rsa.pub檔案複製到node01上的根目錄下,且命名為master_rsa.pub
在node02上也進行如此操作,然後進行測試:
在master主機上鍵入命令:ssh node01 ,如果沒有問題只需要輸入yes即可
3.2.1 對自己進行無密碼登入 ssh master 操作同上 在.ssh檔案目錄下輸入命令 cat id_rsa.pub >> authorized_keys 即可完成
4.下載安裝JDK,HADOOP,配置環境變數
4.1 下載JDK,並且安裝
tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/lib/jvm //我是將jdk安裝到/usr/liv/jvm中的,此時使用的許可權是root(切換root使用者命令su,抱歉我沒有操作sudoer這個檔案,所以沒法使用sudo這個命令)
4.2 下載hadoop jar包
tar -zxvf hadoop-2.4.1tar.gz -C /home/ding/hadoop //需要在你的目錄下先建立資料夾 hadoop (mkdir hadoop)
4.2 配置環境變數
命令:vi /etc/profile
儲存後,source /etc/profile 讓配置檔案生效,其餘node01,node02也需要進行如此操作,當然,前提是你的使用者名稱與jdk安裝目錄,hadoop安裝目錄都是一樣的
4.3 配置hadoop檔案
配置檔案都在 /hadoop-2.4.1/etc/hadoop目錄下面
4.3.1 配置core-site.xml檔案
4.3.2 配置hdfs-site.xml
4.3.3 配置 mapred-site.xml檔案
首先發現沒有這個檔案,而是有一個名為 mapred-site.xml.template ,現將此檔案重新命名,鍵入命令:mv mapred-site.xml.template mapred-site.xml,然後對檔案進行修改
4.3.4 配置yarn-site.xml
4.3.5 配置 hadoop-env.sh ,slaves
配置檔案2:slaves (這個檔案裡面儲存所有slave節點)
5.將hadoop複製到其它節點 node01,node02
scp -r ~/hadoop [email protected]:~/ //註釋將hadoop資料夾複製node01下主目錄 ~/表示使用者主目錄,例如使用者是ding 主目錄就是 /home/ding
scp -r ~/hadoop [email protected]:~/
6.格式化namenode
鍵入命令: hdfs hadoop -format
注意:上面只要出現“successfully formatted”就表示成功了。
7.啟動hadoop
分別啟動start-dfs.sh和start-yarn.sh命令
8.檢查
在master和node上檢查是否啟動
在master檢查,鍵入命令jps
在node01檢查,鍵入命令jps
鍵入命令:hdfs dfsadmin -report
9.上傳一個檔案試試
先建立一個資料夾upload
上傳檔案至資料夾upload下
hadoop fs -put ~/hadoop-2.4.1.tar.gz /upload
檢視upload目錄
hadoop fs -ls /upload