【目的】:學習大數據bash
在此記錄搭建大數據的過程。網絡
【系統環境】ssh
宿主機操做系統:Win7 64位編輯器
虛擬機軟件:Vmware workstation 12分佈式
虛擬機:Ubuntu 16 64位桌面版oop
【步驟概要】學習
1、準備測試
一、準備安裝軟件大數據
二、規劃好虛擬機數量、機器名稱、IP ui
三、設置虛擬機靜態IP
四、創建專用於hadoop的帳號
2、設置免密登陸
實現這幾臺測試機之間能夠免密碼登陸
3、安裝和配置Java環境
4、安裝和配置Hadoop
5、測試和收尾
【搭建過程】
1、準備
一、安裝文件準備
Hadoop軟件:
JDK:
Ubuntu 16的安裝軟件
二、虛擬機準備
測試計劃使用三臺虛擬機
在Win7裏啓動Vmware workstation,安裝一臺操做系統爲Ubuntu 16的空的虛擬機,從這臺虛擬機另外再克隆出來兩臺
三、機器名稱:hadoop.master、hadoop.slave一、hadoop.slave2
經過修改/etc/hostname來設置虛擬機的主機名稱
#vi /etc/hostname
四、查看和肯定網關,我這測試環境的網關是:192.168.152.2
查看方式:
1)、點擊Vmware workstation左上角的「編輯」
2)、選擇「虛擬網絡編輯器」
3)、選擇NAT模式
4)、上圖中「使用本地DHCP服務將IP地址分配給虛擬機」,不少網上文檔都是把此項前面的「√"去掉,若是全部的虛擬機都設置爲靜態IP,能夠去掉,由於我還有別的虛擬機,不在乎是否靜態IP,因此,此項「√」保留。
5)、「NAT設置」按鈕,可看到網關設置,我虛擬機的網關爲:192.168.152.2
這是系統默認的,在此無需變動。
五、規劃三臺虛擬機的IP:192.168.152.2一、192,168.152.2二、192.168.152.23
IP地址選擇,前面三節都是:192.168.152,後面是除了網關裏佔用了2,其它1~255之間的數便可。若是已經設定了其它靜態IP,不和那些衝突便可。
六、修改/etc/hosts,修改hosts文件目的是爲了這三臺虛擬機能夠經過機器名稱互相訪問
上圖是第一臺hadoop.master的,另兩臺,修改127.0.0.1 hadoop.XXXXX 修改成相應的機器名稱
七、爲虛擬機設置靜態IP
只因此設置爲靜態IP,是由於虛擬機啓動後,有時會自動變動IP,而在搭建的大數據環境裏,會配置IP地址,動態變化後,會出現IP地址不匹配。
#sudo vi /etc/network/interfaces
個人文件打開後,裏面有以下內容:
auto lo
iface lo inet loopback
這些內容不變,增長下面內容
auto ens33
iface ens33 inet static
address 192.168.152.21
netmask 255.255.255.0
gateway 192.168.152.2
dns-nameservers 202.96.209.5
保存後退出,重啓電腦,使用ifconfig檢查新設置的IP地址是否已經生效。
使用Ping命令檢查是否能ping通
1)、內網是否能ping通其它機器,好比,在hadoop.master裏ping 192.168.152.22
2)、 Ping外網,好比:ping www.baidu.com
測試以下:
說明:
一、若是編輯/etc/network/interfaces,裏面沒有配置dns,則能夠ping通內網的其它機器,沒法ping通外網的機器
二、注意軟件版本,若是虛擬機不是Ubuntu16,而是Ubuntu14或Ubuntu18,那麼配置靜態IP,可能須要編輯不一樣的文件,就不是/etc/network/interfaces了
若是虛擬機是CentOS ,更不是/etc/network/interfaces,但道理是通的,搭建Hadoop徹底分佈式大數據環境,利用虛擬機來實現,須要配置靜態IP,避免機 器重啓後配置失效。
三、若是設定有問題,則查找緣由,解決後再日後繼續。
八、增長user,這個用戶專用於操做hadoop
1)、切換到root帳號
2)、這裏用戶名設爲:hadoop
#useradd hadoop
3)、爲增長的帳號設置口令
#passwd hadoop
4)、去home文件夾下檢查
#cd /home
#ll
在home文件夾下發現沒有新增hadoop文件夾
5)、刪除已創建的user hadoop,換種方式從新創建
a.刪除原hadoop帳號
#userdel hadoop
b.查看,在home文件夾下沒有hadoop的帳號信息
#ll
c.按下述命令增長hadoop帳號,使用參數
#useradd -r -m -s /bin/bash hadoop
d.再查看home文件夾,正常狀況下,在home文件夾下會出現hadoop文件夾
6)、參照步驟5)在另外兩臺機器上創建hadoop帳號,並設置hadoop的口令,這三臺機器的口令要一致。
#useradd -r -m -s /bin/bash hadoop
#passwd hadoop
九、把新增的這個用戶設爲管理員,編輯/etc/sudoers
注意:Tab鍵的使用
2、設置免密登陸
一、#cd ~/.ssh
提示無此目錄
二、安裝,sudo apt-get install openssh-server
按提示輸入y,回車
三、安裝好之後,輸入cd ~/.ssh,仍然提示沒有這個文件夾
四、執行ssh localhost
執行ssh localhost命令後,就會創建一個~/.ssh的隱藏的文件夾
五、輸入exit 退出
六、進入~/.ssh
#cd ~/.ssh
七、若是先前有公鑰,則先刪除
#rm ./id_rsa*
八、生成公鑰
#ssh-keygen -t rsa
一路按回車便可
九、讓主節點可以免密登陸到主節點
1)、把公鑰添加到key中
# cat ./id_rsa.pub >> ./authorized_keys
2)、第一次使用ssh登陸主節點本機
#ssh hadoop.master
3)、輸入exit退出
#exit
4)、第二次使用ssh登陸主節點本機
#ssh hadoop.master
5)、輸入exit退出
#exit
十、把主節點的公鑰傳到從節點,也就是另外兩臺機器行,實現從主節點免密登陸到從節點
1)、分別到兩臺從節點機器上hadoop.slave1和hadoopslave2上,切換到hadoop帳號,檢查有無~/.ssh文件夾
#su hadoop
#cd ~/.ssh
若是沒有,則創建
#mkdir ~/.ssh
檢查
#cd ~/.ssh
2)、切換到hadoop帳號下
#su hadoop
3)、進入~/.ssh
#cd ~/.ssh
4)、查看
#ll
5)、拷貝傳輸
#scp id_rsa.pub >> hadoop@hadoop.slave1:/home/hadoop/
#scp id_rsa.pub >> hadoop@hadoop.slave2:/home/hadoop/
6)、從上圖看,公鑰傳輸被拒絕掉了,解決辦法:
分別在hadoop.slave1和hadoop.slave2上執行下面語句:
#sudo apt-get install openssh-server
7)、回到主節點,從新拷貝傳輸公鑰
#su hadoop
#cd /home/hadoop
#cd .ssh
#scp id_rsa.pub >> hadoop@hadoop.slave1:/home/hadoop/
#scp id_rsa.pub >> hadoop@hadoop.slave2:/home/hadoop/
8)、再分別到兩臺從節點,把id_rsa.pub加到authorized_Keys裏
#su hadoop
#cd /home/hadoop
#cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
9)、從主節點,以hadoop登陸,檢查是否能免密登陸hadoop.slave1和hadoop.slave2
3、安裝和配置Java環境
4、安裝和配置Hadoop