在
Hadoop 單機環境搭建和僞分布環境搭建https://blog.csdn.net/weixin_39209728/article/details/79688854
基礎之上,利用虛拟機的克隆技術,把hadoop1虛拟機克隆出2台分别是hadoop2、hadoop3
環境說明
我的環境是在虛拟機中配置的,Hadoop叢集中包括4個節點:1個Master,2個Salve,節點之間區域網路連接配接,可以互相ping通
Master機器主要配置NameNode和JobTracker的角色,負責總管分布式資料和分解任務的執行;3個Salve機器配置DataNode 和TaskTracker的角色,負責分布式資料存儲以及任務的執行。其實應該還應該有1個Master機器,用來作為備用,以防止Master伺服器當機,還有一個備用馬上啟用。後續經驗積累一定階段後補上一台備用Master機器(可通過配置檔案修改備用機器數)。
注意:由于hadoop要求所有機器上hadoop的部署目錄結構要求相同(因為在啟動時按與主節點相同的目錄啟動其它任務節點),并且都有一個相同的使用者名賬戶。參考各種文檔上說的是所有機器都建立一個hadoop使用者,使用這個賬戶來實作無密碼認證。這裡為了友善,分别在三台機器上都重建立立一個hadoop使用者。
這裡hadoop1--->配置NameNode和JobTracker的角色,負責總管分布式資料和分解任務的執行
hadoop2和hadoop3---->配置DataNode 和TaskTracker的角色,負責分布式資料存儲以及任務的執行
然後分别修改hadoop2、hadoop3的主機名稱、添加映射虛拟機和ip位址+配置slaves檔案
vi /etc/hostname
#修改虛拟機名稱
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICMxYDM0QDM5EjNyMDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
vi /etc/hosts
#添加映射虛拟機
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#修改固定ip位址
靜态網絡配置
注意:1)該項的所有操作步驟需要使用root使用者進行。
2)該項需要在叢集中每台主機上進行單獨設定。
進入網絡配置檔案目錄:cd /etc/sysconfig/network-scripts/
指令:
#vi ifcfg-ens33
i插入,Esc退出編輯模式,:wq儲存退出。
配置檔案,以下配置項若在檔案中已存在則修改其屬性值,若不 存在則進行添加:
# 設定該網絡通過配置檔案管理,而不通過網絡管理器管理
NM_CONTROLLED=no
# 設定該網絡為開機自動啟動
ONBOOT=yes
# 設定采用靜态IP模式
BOOTPROTO=static
#該網絡的IP位址,可以使用DHCP獲得的IP位址,也可以自行規劃
IPADDR=192.168.10.111
#該網絡的子網路遮罩
NETMASK=255.255.255.0
#該網絡的網關位址
GATEWAY=192.168.10.1
輸入完成後 Esc 退出編輯模式,:wq 儲存退出。
#service network restart
#ip addr
測試是否可以互相ping通 并用ssh指令聯通成功
配置slaves檔案(隻有hadoop1主機需要配置)
有兩種方案:
(1)第一種
去掉"localhost",每行添加一個主機名,把剩餘的Slave主機名都填上。
例如:添加形式如下:
hadoop2
hadoop3
(2)第二種
去掉"localhost",加入叢集中所有Slave機器的IP,也是每行一個。
例如:添加形式如下
192.168.1.123
192.168.1.124
配置hdfs-site.xml檔案
修改複制節點個數為2
剩餘的就是停止hadoop服務:stop-all.sh
三台虛拟機都需要清理namenode和datanode目錄下檔案都删除掉
hdoop1---->重新格式化namenode:hdfs namenode -format
然後分别啟動hadoop服務:start-all.sh
效果;
測試:用dfs 建立檔案夾後 上傳檔案
hdfs dfs -mkdir /dir #建立檔案夾
hdfs dfs -put <linux目錄下>/<要上傳的檔案> /dir #dir為hdfs裡面建立的檔案
通路http://<hostname>:50070---->檢視dir目錄下檔案對應的資訊
block---預設大小128m分割一個塊出來 這裡的檔案大小小于128是以隻有一個塊出現