Hadoop完全分佈式集羣安裝

轉載請註明原地址http://blog.csdn.net/qj30212/article/details/52328261,謝謝!

本文目的是教大家配置Hadoop的完全分佈式的集羣,除了完全分佈式還有兩種分別是單節點和僞分佈式部署。僞分佈式只需要一臺虛擬機,配置的東西也相對較少,大多用作代碼調試,大家稍微查閱資料,或者對我的配置進行一些刪減,就可以實現僞分佈式,所以我這裏還是使用完全分佈式,開了三臺虛擬機,都只分配了1G,1核的默認內存,跑得無壓力,所以你的筆記本大概需要4G+的內存,就可以完成這個實驗。

 

基於Hadoop 2.x版本和1.x版本的巨大差異,而我更熟悉1.x版本,所以本次使用的Hadoop版本是1.2.1,至於2的操作和配置,你熟悉了1以後一定是手到擒來,再者網上大多資料以及書籍都是基於1.x的,這樣,即使你遇到了問題,也會更好解決。

 

至於Hadoop下載地址網上多的是,官網也有,大家可以自行獲取,我用的Linux版本是Ubantu14.04,爲什麼選這個系統呢?因爲我用得順手。如果大家使用Centos,有些指令可能略有不同,不過這應該難不倒你,百度谷歌就能告訴你答案。

 

先行條件:

安裝Hadoop之前,有兩個先行條件,一個是JAVA環境的安裝,因爲Hadoop是基於java開發的,具體過程我後面會講;另一個是實現SSH互通,這個大家上課做過實驗,但是Ubantu的設置和Centos有所不同!!所以我也會寫在下面。

 

讓我們開始把!

 

注意:1.本實驗全程不要使用sudo su操作,那樣非常不專業,容易導致很多安全問題的發生。

2.合理使用tab鍵讓你linux操作更加順手。

 

爲了統一,大家點擊虛擬機的編輯,選擇虛擬網絡編輯器。如下配置:

 

打開終端,第一步是修改hosts文件,輸入:sudo vim /etc/hosts,加上以下三行:

192.168.217.130 master                                                         

192.168.217.201 slave1

192.168.217.202 slave2

 

然後要修改ip地址,根據上面所填寫的三個內容,ip地址的設置也是不一樣的。這裏,要注意,Ubantu不要在終端下修改ip地址,不然後果很嚴重,不吹不黑,大家就用他自帶圖形界面來修改就好,方便又直觀。

 

根據不同的主機,address不同,其他的一樣。

 

然後要建立一個hadoop賬戶,輸入如下指令:

sudo addgroup hadoop

sudo adduser --ingroup hadoop hadoop(前一個hadoop爲組名,後面纔是用戶名,用戶名可以自己取,我方便起見寫了hadoop,不過我自己的虛擬機不是這樣,所以看截圖的時候不要太過於糾結。後面會讓你輸入一個密碼,是你登錄這個用戶時的密碼,鍵入之後,出現任何提示都直接回車表示默認)

sudo gedit /etc/sudoers(不要使用vim,因爲那樣子打開文件是隻讀的,除非你進入root,修改後,再把權限改爲只讀,一定要改回只讀。但是這個好麻煩,沒有gedit直接根據提示apt-get即可,)

在root   ALL=(ALL:ALL)  ALL下面,加上hadoop  ALL=(ALL:ALL)  ALL

添加這句話是爲了讓hadoop用戶也能使用sudo。

輸入su hadoop即可登入該用戶

注:三個虛擬機都需要進行上面的操作。(可以先做一份,然後克隆兩份,再進行修改,記得登錄hadoop用戶,接下來的配置都在這個用戶下進行配置)

 

接下來,需要進行ssh無密碼互連的操作。

輸入sudo apt-get install ssh來獲取ssh。

輸入ls -a /home/u(u爲你的當前用戶,即hadoop)

裏面應該可以看到一個.ssh的隱藏文件夾,如果沒有可以手動創建,接下來輸入命令:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa(這裏就不詳細解釋每個參數的作用了,~代表當前用戶文件夾,此處是/home/hadoop)

這個命令會在.ssh文件夾下創建兩個文件id_dsa及id_dsa.pub,相當於現實中的鎖和鑰匙,把後者追加到授權的key中去,輸入:

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys.

這樣就可以實現無密碼ssh自登陸,可以試試命令:ssh localhost

exit退出登錄

 

爲了實現master與slave之間互相都能免密碼ssh登錄,這裏需要把id_dsa.pub發送到每一個主機的authorized_keys中,先把id_dsa.pub文件通過scp命令傳輸過去。

這裏推薦大家進入slave1和slave2,把他們的id_dsa.pub發送到master上,然後再添加到master的authorized_keys中,再把master中的authorized_keys傳到slave1和slave2中即可。

scp ~/.ssh/id_dsa.pub u@master:~/.ssh/id_dsa.pub.slave1(u處填你master的用戶,即hadoop,slave1用來區別不同主機的公鑰)。

然後,輸入,cat ~/.ssh/id_dsa.pub.slave1 >> ~/.ssh/authorized_keys

當slave1和slave2的公鑰都傳入後,再鍵入:

scp ~/.ssh/authorized_keys slave1:~/.ssh/authorized_keys

scp ~/.ssh/authorized_keys slave2:~/.ssh/authorized_keys

此時,若在master輸入ssh slave1 可以連接到slave1,那就算配置完成了。

接下來,下載hadoop。輸入

wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz

文件會下載在當前目錄,爲了方便配置,換到另一個位置

mv hadoop-1.2.1.tar.gz /opt

cd /opt

tar -zxvf hadoop-1.2.1.tar.gz

解壓完成後,會生成一個hadoop-1.2.1的文件夾。

我們進入,該文件夾。

cd hadoop-1.2.1

ls

我們要進入其中的conf文件夾進行配置。

我們需要配置如下參數,其餘的保持默認即可。

其中每個文件的配置請大家登錄我的個人主頁進行下載:

http://114.215.84.38/doc/Hadoopconf.rar

 

然後,我們還需要配置一下JDK,前面一直忘記說了。汗,不過JDK的配置過程十分簡單,先去Oracle官網獲取JDK1.6以上的版本。下載下來後解壓,解壓命令上面寫過,記住解壓的位置。

然後,配置profile。輸入:vim /etc/profile

箭頭位置分別填入你jdk解壓後的文件夾路徑和Hadoop的文件夾路徑。

保存後,輸入

source /etc/profile

使profile立刻生效。

接下來,輸入hadoop回車,應該可以看見相應的指令提示。

我們要注意,hadoop的運行腳本是放在hadoop的bin文件夾下的,我們進入那個文件夾

其中的start-all.sh和stop-all.sh是最重要的兩個腳本,是用來啓動和關閉我們的hadoop的,這個操作請在master上運行,否則後果很嚴重。

運行這個指令之前,要先初始化namenode

hadoop namenode -format

然後就可以準備運行了,在這之前,讓我們輸入一下jps來查看有什麼java進程正在運行。

三臺機器應該都是隻有jps一個進程,現在讓我們在master上輸入

start-all.sh

然後再輸入jps

master的結果應該是:

NameNode

SecondaryNameNode

JobTracker

jps

兩個slave的結果應該是:

DataNode

TaskTracker

jps

這樣就算安裝完成了,可以試試

hadoop fs -ls來查看集羣上的文件。

也可以打開瀏覽器,輸入master:50030和master:50070來查看狀態

 

PS:

爲什麼最後面的內容沒有截圖呢!因爲我操作的時候,不小心ssh了slave1,然後在這個狀況下格式化了namenode並啓動了,直接就崩了好吧!!遇到這種情況怎麼辦,其實是有辦法的。

把這四個文件夾全部刪除,然後再重新創建就好了。唉,不說了,面壁了。

發佈了32 篇原創文章 · 獲贊 52 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章