天天看點

完全分布式運作模式(開發重點)

完全分布式運作模式(開發重點)

分析

  • (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
指令   選項參數   要拷貝的檔案路徑/名稱     目的使用者@主機:目的路徑/名稱
      

選項參數說明

完全分布式運作模式(開發重點)

(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