Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04
前段時間搭建Hadoop分布式集群,踩了不少坑,網上很多資料都寫得不夠詳細,對于新手來說搭建起來會遇到很多問題。以下是自己根據搭建Hadoop分布式集群的經驗希望給新手一些幫助。當然,建議先把HDFS和MapReduce理論原理看懂了再來搭建,會流暢很多。
?
準備階段:
系統:Ubuntu Linux16.04 ?64位 (下載地址:https://www.ubuntu.com/download/desktop)
安裝好Ubuntu之后,如果之前沒有安裝過jdk,需要先安裝jdk。這里安裝jdk的版本是:jdk1.8.0_144 ?(下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 這里就不展開安裝說明,安裝jdk很簡單,這里自行百度吧。
建議Ubuntu下載64位,因為Hadoop2.5.0之后的版本里面的庫都是64位的,32位的Linux系統里面每次運行Hadoop都會報警告。
現在準備好了一臺安裝了java的Ubuntu虛擬機,別忘了搭建Hadoop集群至少需要三臺Ubuntu虛擬機。
最簡單的辦法就是 使用VMware自帶的克隆的辦法,克隆出三臺一模一樣的虛擬機。
具體操作參見地址 (https://jingyan.baidu.com/article/6b97984d9798f11ca2b0bfcd.html)
準備好了三臺Ubuntu Linux虛擬機,接下來就開始搭建集群。
?
先總的看一下所有的步驟:
一、配置hosts文件
二、建立hadoop運行帳號
三、配置ssh免密碼連入
四、下載并解壓hadoop安裝包
五、配置 /etc/hadoop目錄下的幾個文件及 /etc/profile
六、格式化namenode并啟動集群?
?
接下來根據步驟開始搭建:
一、配置hosts文件
以上準備了三臺虛擬機,但是虛擬機的主機名也是一樣的,需要現對虛擬機主機名進行修改,來進行區分一個主節點和兩個從節點。
修改主機名命令:
顯示的master就是主機名,我這里已經修改好了,可以把三臺虛擬機分別命名 主節點:master 從節點1:node1 從節點2:node2
?
修改好了,保存即可。
接下來,分別查看三臺虛擬機的ip地址,命令如下:
inet addr就是這臺虛擬機的ip地址。
接下來打開hosts文件 進行修改:
將三臺虛擬機的ip地址和主機名加在里面,其它的不用動它。
三臺虛擬機都要修改hosts文件。簡單的說配置hosts后三臺虛擬機就可以進行通信了,可以互相ping一下試試,是可以ping通的。
?
二、建立hadoop運行帳號
解釋一下這一步驟,就是建立一個group組,然后在三臺虛擬機上重新建立新的用戶,將這三個用戶都加入到這個group中。
以下操作三臺虛擬機都要進行相同操作:
?首先添加一個叫hadoop用戶組進來
添加名叫hduser的用戶,并添加到hadoop組中。
?
接著輸入以下指令然后輸入兩次密碼
?
然后賦予hduser用戶admin權限
接下來的操作 切換到剛剛新建的用戶進行
?
三、配置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地址寫的對不對。
?
四、下載并解壓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
?三臺主機都要解壓到相應位置
?
五、配置 /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路徑是否填寫錯誤。
?
六、格式化namenode并啟動集群?
接下來需要格式化namenode,注意只需要在 master主機上進行格式化。格式化命令如下:
?
看到successful表示格式化成功。
接下來啟動集群:
啟動完畢,檢查下啟動情況: master主機看到四個開啟的進程,node1和node2看到三個開啟的進程表示啟動成功。
?
如果有疑問或疏漏的地方,歡迎大家指出和討論哈哈!!!
轉載于:https://www.cnblogs.com/caiyisen/p/7373512.html
總結
以上是生活随笔為你收集整理的Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cannot add or update
- 下一篇: html的body内标签之图片及表格