完全分布式運作模式(開發重點)
分析
- (1)準備3台客戶機(關閉防火牆、靜态ip、主機名稱)
- (2)安裝JDK
- (3)配置環境變量
- (4)安裝Hadoop
- (5)配置環境變量
- (6)配置叢集
- (7)單點啟動
- (8)配置ssh
- (9)群起并測試叢集
虛拟機準備
參考 《環境搭建_虛拟機準備》
如果搭建叢集要一次成功的話,則需要執行以下測試
1 測試主機名
hostname
2 測試映射
ping 目前主機名
3 測試ip
ifconfig
4 測試防火牆
service iptables status
5 測試檔案權限
ll /opt
安裝JDK,安裝Hadoop并配置環境變量
略
scp(secure copy)安全拷貝
(1)scp定義:
scp可以實作伺服器與伺服器之間的資料拷貝。(from server1 to server2)
(2)基本文法
scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname
指令 遞歸 要拷貝的檔案路徑/名稱 目的使用者@主機:目的路徑/名稱
(3)案例實操
以下操作使用
dev1賬号
(a)在hadoop101上,将hadoop101中/opt/module目錄下的軟體拷貝到hadoop102上。
cd /opt/module
scp -r /opt/module dev1@hadoop102:/opt/
(b)在hadoop101上,将hadoop101伺服器上的/opt/module目錄下的軟體拷貝到hadoop103上。 (拉)
scp -r /opt/module dev1@hadoop103:/opt/
(c)在hadoop103上操作将hadoop101中/opt/module目錄下的軟體拷貝到hadoop104上。
scp -r /opt/module dev1@hadoop104:/opt/
注意:拷貝過來的/opt/module目錄,别忘了在hadoop102、hadoop103、hadoop104上修改所有檔案的,所有者和所有者組。
sudo chown dev1:dev1 -R /opt/module
(d)将hadoop101中/etc/profile檔案拷貝到hadoop102的/etc/profile上。
sudo scp /etc/profile root@hadoop102:/etc/profile
(e)将hadoop101中/etc/profile檔案拷貝到hadoop103的/etc/profile上。
sudo scp /etc/profile root@hadoop103:/etc/profile
(f)将hadoop101中/etc/profile檔案拷貝到hadoop104的/etc/profile上。
sudo scp /etc/profile root@hadoop104:/etc/profile
注意:拷貝過來的配置檔案别忘了source一下/etc/profile
rsync 快速同步
rsync主要用于備份和鏡像。具有速度快、避免複制相同内容和支援符号連結的優點。
rsync和scp差別:
用rsync做檔案的複制要比scp的速度快,rsync隻對差異檔案做更新。
scp是把所有檔案都複制過去。
(1)基本文法
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir/$fname
指令 選項參數 要拷貝的檔案路徑/名稱 目的使用者@主機:目的路徑/名稱
選項參數說明
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5COxkTNzMzM3IzNyEDZjJjMzYzX2IDO1QTM1EzLclDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
(2)案例實操
(a)把hadoop101機器上的/opt/software目錄同步到hadoop102伺服器的dev1使用者下的/opt/目錄
rsync -rvl /opt/software/ dev1@hadoop102:/opt/software
Mysync叢集分發腳本
(1)需求:循環複制檔案到所有節點的相同目錄下
(2)需求分析:
(a)rsync指令原始拷貝:
rsync -rvl /opt/module dev1@hadoop103:/opt/
(b)期望腳本:
Mysync要同步的檔案名稱
(c)說明:在/home/dev1/bin這個目錄下存放的腳本,dev1 使用者可以在系統任何地方直接執行。
(3)腳本實作
(a)在/home/dev1 目錄下建立bin目錄,并在bin目錄下Mysync建立檔案,檔案内容如下:
cd /home/dev1
mkdir bin
cd bin/
vim Mysync
在該檔案中編寫如下代碼
#!/bin/bash
#1 擷取輸入參數個數,如果沒有參數,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 擷取檔案名稱
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 擷取上級目錄到絕對路徑
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 擷取目前使用者名稱
user=`whoami`
#5 循環
for((host=102; host<105; host++)); do
echo ------------------- hadoop$host --------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
(b)修改腳本 Mysync 具有執行權限
chmod 777 Mysync
Mysync /home/dev1/bin