Hadoop 分布式环境搭建
1.集群機器:
1臺 裝了 ubuntu 14.04的 臺式機
1臺 裝了ubuntu 16.04 的 筆記本???? (機器更多時同樣適用)
搭建步驟:
準備工作:
使兩臺機器處于同一個局域網:相互能夠 ping 通
????? 主機名稱 ? ? ? ? ? ? ? ? ? ? IP地址
soyo-VPCCB3S1C?? 192.168.1.130 ? (master-->namenode)
soyo-slave01 ?? ??? 192.168.1.126??????? (datanode)
想要更改主機名稱的話:sudo vim /etc/hostname?? 之后重啟
之后兩臺機器都修改 /etc/hosts/ 設置為:
2.配置ssh無密碼登錄本機和訪問集群機器
2臺主機電腦分別運行如下命令,測試能否連接到本地localhost
ssh localhost
結果:這樣說明沒問題
如果不能登錄本地:
- sudo apt-get openssh-server
- ssh-keygen -t rsa -P "" ? ? ? ? ? ? // 生成ssh公鑰
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys????????? // (authorized_keys 剛開始是沒有的)?SSH無密碼登陸授權
在保證了2臺主機電腦都能連接到本地localhost后,還需要讓master主機免密碼登錄slave01。在master執行如下命令,將master的id_rsa.pub傳送給slave01主機。scp 是 secure copy 的簡寫,用于在 Linux 下進行遠程拷貝文件,類似于 cp 命令,不過 cp 只能在本機中拷貝。
scp ~/.ssh/id_rsa.pub soyo@soyo-slave01:/home/soyo/?這個時候在soyo-slave01主機的/home/soyo/路徑下可以找到 id_rsa.pub 這個文件
- 接著在slave01主機上將master的公鑰加入各自的節點上,在soyo-slave01執行如下命令:
- cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
- rm ~/id_rsa.pub
- 配置完成
3.在master(soyo-VPCCB3S1C)測試連接soyo-slave01節點:
?
4.Hadoop分布式配置:
hadoop而而配置文件都位于/usr/local2/hadoop/etc/hadoop目錄下。
總共要配置 5 個文件:slaves,core-site.xml,hdfs-site.xml,mapred-site.xml.template(復制后修改名字為mapred-site.xml),yarn-site.xml
slaves:
core-site.xml:
hdfs-site.xml:
mapred-site.xml:
yarn-site.xml:
這里如果不配置:
??????? <name>yarn.nodemanager.resource.memory-mb</name>
??????? <name>yarn.nodemanager.resource.cpu-vcores</name>
soyo-slave01上的NodeManager無法啟動
????? memory-mb(可用內存大小) value:參照Linux分類的總結--> http://www.cnblogs.com/soyo/p/7908430.html
????? cpu-vcores (CPU核數)????? value:參照Linux分類的總結-->? http://www.cnblogs.com/soyo/p/7908365.html
5.給節點分發Hadoop配置:
? 當前路徑為:/usr/local2
tar -zcf ~/hadoop.tar.gz ./hadoop
(如果Hadoop之前被使用過最好刪除 temp 和logs 再分發,每次刪除這兩個文件后,啟動Hadoop前都需要執行:hdfs namenode -format 不然namenode會無法啟動,這個下面有講)
??? cd? /home/soyo
scp ./hadoop.tar.gz soyo-slave01:/home/soyo (這里節點寫成:soyo@soyo-slave01:/home/soyo 也可以)
在soyo-slave01節點上執行:
sudo tar -zxf ~/hadoop.tar.gz -C /usr/local2 sudo chmod -R 777 hadoop
6.啟動Hadoop集群:
?任意路徑下執行:
? hdfs namenode -format
?? start-all.sh
(想要在任意路徑下可以啟動Hadoop 需要配置:bashrc)
vim ~/.bashrc:
?source ~/.bashrc
7.查看Hadoop分布式是否搭建成功:
在master節點:jps
在 slave節點上:jps
要保證master,slave 的shell中的進程都被啟動(少一個都表示沒有配置成功)
8.分布式計算:
首先創建 HDFS 上的數據存放目錄
hdfs dfs? -mkdir? -P? /user/soyo
往HDFS中導入數據:
hdfs dfs? -put /usr/local2/hadoop/etc/hadoop/*.xml /user/soyo
執行:
hadoop jar /usr/local2/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar grep /user/soyo /user/soyo_output 'dfs[a-z.]+'
可以通過WEB頁面查看HDFS上存儲的數據以及計算的結果文件:soyo-VPCCB3S1C:50070 (直接瀏覽器輸入這個網址)
?
同樣可以通過 Web 界面查看任務進度:soyo-VPCCB3S1C:8088 (直接瀏覽器輸入這個網址) ? 如何yarn資源管理器啟動失敗這個網頁是打不開的
9.把計算結果保存到本地:
hdfs dfs -get? /user/soyo_output? /home/soyo
10.DataNode 節點負責保存HDFS上的 數據,那實質的計算過程也是由它做嗎?(很無奈啊......圖片是反的)
DataNode:
?
?
?
?
?
?
?
?
?
?
?
NameNode:
可以看出計算的過程也是由DataNode來承擔的
轉載于:https://www.cnblogs.com/soyo/p/7868282.html
總結
以上是生活随笔為你收集整理的Hadoop 分布式环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 都怪雨下的那么急是什么歌?
- 下一篇: mysql like 命中索引