基於Ubuntu16搭建Hadoop大數據完全分布式環境


【目的】:學習大數據

 在此記錄搭建大數據的過程。

 【系統環境】

            宿主機操作系統:Win7 64位

            虛擬機軟件:Vmware workstation 12

            虛擬機:Ubuntu 16 64位桌面版

  【步驟概要】

   一、准備

          1、准備安裝軟件

           2、規划好虛擬機數量、機器名稱、IP 

           3、設置虛擬機靜態IP

           4、建立專用於hadoop的賬號

   二、設置免密登錄

          實現這幾台測試機之間可以免密碼登錄

   三、安裝和配置Java環境

   四、安裝和配置Hadoop

   五、測試和收尾

 

  【搭建過程】

         一、准備

                1、安裝文件准備

                       Hadoop軟件:

                      JDK:

                       Ubuntu 16的安裝軟件

                 2、虛擬機准備

                       測試計划使用三台虛擬機

                       在Win7里啟動Vmware workstation,安裝一台操作系統為Ubuntu 16的空的虛擬機,從這台虛擬機另外再克隆出來兩台

                 3、機器名稱:hadoop.master、hadoop.slave1、hadoop.slave2

                       通過修改/etc/hostname來設置虛擬機的主機名稱

                        #vi /etc/hostname

                       

                 4、查看和確定網關,我這測試環境的網關是:192.168.152.2

                       查看方式:

                       1)、點擊Vmware workstation左上角的“編輯”

                       2)、選擇“虛擬網絡編輯器”

                      

 

                       3)、選擇NAT模式

                       

                       4)、上圖中“使用本地DHCP服務將IP地址分配給虛擬機”,很多網上文檔都是把此項前面的“√"去掉,如果所有的虛擬機都設置為靜態IP,可以去掉,因為我還有別的虛擬機,不在意是否靜態IP,所以,此項“√”保留。

                        5)、“NAT設置”按鈕,可看到網關設置,我虛擬機的網關為:192.168.152.2

                       

                        這是系統默認的,在此無需變更。

                 5、規划三台虛擬機的IP:192.168.152.21、192,168.152.22、192.168.152.23

                       IP地址選擇,前面三節都是:192.168.152,后面是除了網關里占用了2,其它1~255之間的數即可。如果已經設定了其它靜態IP,不和那些沖突即可。

                 6、修改/etc/hosts,修改hosts文件目的是為了這三台虛擬機可以通過機器名稱互相訪問

                       

                       上圖是第一台hadoop.master的,另兩台,修改127.0.0.1  hadoop.XXXXX 修改為相應的機器名稱

                 7、為虛擬機設置靜態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

                        測試如下:

                   

                        說明:

                               1、如果編輯/etc/network/interfaces,里面沒有配置dns,則可以ping通內網的其它機器,無法ping通外網的機器

                                2、注意軟件版本,如果虛擬機不是Ubuntu16,而是Ubuntu14或Ubuntu18,那么配置靜態IP,可能需要編輯不同的文件,就不是/etc/network/interfaces了

                                      如果虛擬機是CentOS ,更不是/etc/network/interfaces,但道理是通的,搭建Hadoop完全分布式大數據環境,利用虛擬機來實現,需要配置靜態IP,避免機                                    器重啟后配置失效。

                                 3、如果設定有問題,則查找原因,解決后再往后繼續。

                 8、增加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

                 9、把新增的這個用戶設為管理員,編輯/etc/sudoers

                         

                         注意:Tab鍵的使用

                 

         二、設置免密登錄

                1、#cd ~/.ssh

                      提示無此目錄

                  2、安裝,sudo apt-get install openssh-server

                      

                      按提示輸入y,回車

                     3、安裝好以后,輸入cd ~/.ssh,仍然提示沒有這個文件夾

                     4、執行ssh localhost

                          執行ssh localhost命令后,就會建立一個~/.ssh的隱藏的文件夾

                     5、輸入exit 退出

                       

                     6、進入~/.ssh

                          #cd ~/.ssh

                      7、如果先前有公鑰,則先刪除

                          #rm ./id_rsa*

                       8、生成公鑰

                          #ssh-keygen -t rsa

                          一路按回車即可

                         

                      9、讓主節點能夠免密登錄到主節點

                         1)、把公鑰添加到key中

                             # cat ./id_rsa.pub >> ./authorized_keys

                          2)、第一次使用ssh登錄主節點本機

                              #ssh hadoop.master

                          3)、輸入exit退出

                                #exit

                          4)、第二次使用ssh登錄主節點本機

                                #ssh hadoop.master

                          5)、輸入exit退出

                              #exit

                      10、把主節點的公鑰傳到從節點,也就是另外兩台機器行,實現從主節點免密登錄到從節點

                              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

                                      

                               

         三、安裝和配置Java環境

         四、安裝和配置Hadoop

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM