Hadoop分佈式集羣搭建hadoop2.6+Ubuntu16.04

前段時間搭建Hadoop分佈式集羣,踩了很多坑,網上不少資料都寫得不夠詳細,對於新手來講搭建起來會遇到不少問題。如下是本身根據搭建Hadoop分佈式集羣的經驗但願給新手一些幫助。固然,建議先把HDFS和MapReduce理論原理看懂了再來搭建,會流暢不少。html

 

準備階段:java

系統:Ubuntu Linux16.04  64位 (下載地址:https://www.ubuntu.com/download/desktop)node

安裝好Ubuntu以後,若是以前沒有安裝過jdk,須要先安裝jdk。這裏安裝jdk的版本是:jdk1.8.0_144  (下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 這裏就不展開安裝說明,安裝jdk很簡單,這裏自行百度吧。apache

建議Ubuntu下載64位,由於Hadoop2.5.0以後的版本里面的庫都是64位的,32位的Linux系統裏面每次運行Hadoop都會報警告。ubuntu

如今準備好了一臺安裝了java的Ubuntu虛擬機,別忘了搭建Hadoop集羣至少須要三臺Ubuntu虛擬機。服務器

最簡單的辦法就是 使用VMware自帶的克隆的辦法,克隆出三臺如出一轍的虛擬機。oracle

具體操做參見地址 (https://jingyan.baidu.com/article/6b97984d9798f11ca2b0bfcd.html)ssh

準備好了三臺Ubuntu Linux虛擬機,接下來就開始搭建集羣。分佈式

 

先總的看一下全部的步驟:oop

1、配置hosts文件

2、創建hadoop運行賬號

3、配置ssh免密碼連入

4、下載並解壓hadoop安裝包

5、配置 /etc/hadoop目錄下的幾個文件及 /etc/profile

6、格式化namenode並啓動集羣 

 

接下來根據步驟開始搭建:

1、配置hosts文件

以上準備了三臺虛擬機,可是虛擬機的主機名也是同樣的,須要現對虛擬機主機名進行修改,來進行區分一個主節點和兩個從節點。

修改主機名命令:

顯示的master就是主機名,我這裏已經修改好了,能夠把三臺虛擬機分別命名 主節點:master 從節點1:node1 從節點2:node2

 

修改好了,保存便可。

接下來,分別查看三臺虛擬機的ip地址,命令以下:

inet addr就是這臺虛擬機的ip地址。

接下來打開hosts文件 進行修改:

將三臺虛擬機的ip地址和主機名加在裏面,其它的不用動它。

三臺虛擬機都要修改hosts文件。簡單的說配置hosts後三臺虛擬機就能夠進行通訊了,能夠互相ping一下試試,是能夠ping通的。

 

2、創建hadoop運行賬號

解釋一下這一步驟,就是創建一個group組,而後在三臺虛擬機上從新創建新的用戶,將這三個用戶都加入到這個group中。

如下操做三臺虛擬機都要進行相同操做

 首先添加一個叫hadoop用戶組進來

添加名叫hduser的用戶,並添加到hadoop組中。

 

接着輸入如下指令而後輸入兩次密碼

 

而後賦予hduser用戶admin權限

接下來的操做 切換到剛剛新建的用戶進行

 

3、配置ssh免密碼連入

開始配置ssh以前,先確保三臺機器都裝了ssh。

輸入如下命令查看安裝的ssh。

若是缺乏了opensh-server,須要進行安裝。

安裝完畢以後開始配置ssh

接下來的這第三個步驟的操做請注意是在哪臺主機上進行,不是在三臺上同時進行

(1)下面的操做在master機上操做

首先在master機上輸入如下命令,生成master機的一對公鑰和私鑰:

 

如下命令進入認證目錄能夠看到,  id_rsa 和 id_rsa.pub這兩個文件,就是咱們剛剛生成的公鑰和私鑰。

 

而後,下面的命令將公鑰加入到已認證的key中:

再次進入生成目錄,能夠看到多出authorized_keys這個文件:

 

而後輸入ssh localhost 登陸本機命令,第一次提示輸入密碼,輸入exit退出,再次輸入ssh localhost不用輸入密碼就能夠登陸本機成功,則本機ssh免密碼登陸已經成功。

 

到這裏是否是已經對ssh免密碼登陸有了認識,不要着急,開始配置node1和node2節點的ssh免密碼登陸,目的是讓master主機能夠不用密碼登陸到node1和node2主機。

(2)這一步分別在node1和node2主機上操做

將master主機上的is_dsa.pub複製到node1主機上,命名爲node1_dsa.pub。node2主機進行一樣的操做。

 

將從master獲得的密鑰加入到認證,node2主機進行一樣的操做。

而後開始驗證是否是已經能夠進行ssh免密碼登陸。

(3)在master機上進行驗證

一樣第一次須要密碼,以後exit退出,再ssh node1就不須要密碼登陸成功,說明ssh免密碼登陸配置成功!

 

若是失敗了,多是前面的認證沒有認證好,能夠將.ssh目錄下的密鑰都刪了從新生成和配置一遍。或者檢查下hosts文件ip地址寫的對不對。

 

4、下載並解壓hadoop安裝包

版本:Hadoop2.6.0  (下載地址:http://mirrors.hust.edu.cn/apache/hadoop/common/)

建議初學者選擇2.6.0或者2.7.0版本就能夠了,並且若是後面要配置Eclipse開發環境的話,這兩個版本的插件很容易找到,不用本身去編譯。

話很少說,將hadoop壓縮包,解壓到一個文件夾裏面,我這裏解壓到了home文件夾,並修改文件夾名爲hadoop2.6。所在的目錄就是/home/hduser/hadoop2.6

 三臺主機都要解壓到相應位置

 

5、配置 /etc/hadoop目錄下的幾個文件及 /etc/profile

主要有這5個文件須要修改:

~/etc/hadoop/hadoop-env.sh

~/etc/hadoop/core-site.xml

~/etc/hadoop/hdfs-site.xml

~/etc/hadoop/mapred-site.xml

~/etc/hadoop/slaves

/etc/profile

三臺機都要進行這些操做,能夠先在一臺主機上修改,修改完了複製到其它主機就能夠了。

 首先是hadoop-env.sh ,添加java安裝的地址,保存退出便可。

而後core-site.cml

解釋下:第一個fs.default.name設置master機爲namenode   第二個hadoop.tmp.dir配置Hadoop的一個臨時目錄,用來存放每次運行的做業jpb的信息。

 

接下來hdfs-site.xml的修改:

解釋下:dfs.name.dir是namenode存儲永久性的元數據的目錄列表。這個目錄會建立在master機上。dfs.data.dir是datanode存放數據塊的目錄列表,這個目錄在node1和node2機都會建立。 dfs.replication 設置文件副本數,這裏兩個datanode,因此設置副本數爲2。

接下來mapred-site.xml的修改:

 

解釋下:這裏設置的是運行jobtracker的服務器主機名和端口,也就是做業將在master主機的9001端口執行。

 接下來修改slaves文件

這裏將兩臺從主機的主機名node1和node2加進去就能夠了。

 最後修改profile文件 ,以下進入profile:

將這幾個路徑添加到末尾:

修改完讓它生效:

 

 檢查下是否能夠看到hadoop版本信息

顯示出了版本信息,若是沒有顯示出來,回過去檢查 profile路徑是否填寫錯誤。

 

6、格式化namenode並啓動集羣 

接下來須要格式化namenode,注意只須要在 master主機上進行格式化。格式化命令以下:

 

看到successful表示格式化成功。

接下來啓動集羣:

啓動完畢,檢查下啓動狀況: master主機看到四個開啓的進程,node1和node2看到三個開啓的進程表示啓動成功。

 

若是有疑問或疏漏的地方,歡迎你們指出和討論哈哈!!!

相關文章
相關標籤/搜索