linux xshell jdk hadoop(環境搭建) 虛擬機 安裝(大數據搭建環境)


【hadoop是2.6.5版本  xshell是6版本 jdk是1.8.0.131 虛擬機是CentOS-6.9-x86_64-bin-DVD1.iso vmware10】

1.創建虛擬機

第一步:在VMware中創建一台新的虛擬機。如圖2.2所示。

2.2

第二步:選擇“自定義安裝”,然后單擊“下一步”按鈕,如圖2.3所示。

 2.3

第三步:單擊“下一步” 按鈕,如圖2.4所示。

 2.4

第四步:選擇“稍后安裝操作系統”,然后單擊“下一步” 按鈕,如圖2.5所示。

 2.5

第五步:客戶機操作系統選擇Linux,版本選擇“CentOS 64”,然后單擊“下一步” 按鈕,如圖2.6所示。

 2.6

第六步:在這里可以選擇“修改虛擬機名稱”和“虛擬機存儲的物理地址”,如圖2.7所示。

2.7

第七步:根據本機電腦情況給Linux虛擬機分配“處理器個數”和每個處理器的“核心數量”。注意不能超過自己電腦的核數,推薦處理數量為1,每個處理器的核心數量為1,如圖2.8所示。

2.8

第八步:給Linux虛擬機分配內存。分配的內存大小不能超過自己本機的內存大小,多台運行的虛擬機的內存總合不能超過自己本機的內存大小,如圖2.9所示。

2.9

第九步:使用NAT方式為客戶機操作系統提供主機IP地址訪問主機撥號或外部以太網網絡連接,如圖2.10所示。

 2.10

第十步:選擇“SCSI控制器為LSI Logic(L)”,然后單擊“下一步” 按鈕,如圖2.11所示。

2.11

第十一步:選擇“虛擬磁盤類型為SCSI(S)”,然后單擊“下一步” 按鈕,如圖2.12所示。

 2.12

第十二步:選擇“創建新虛擬磁盤”,然后單擊“下一步” 按鈕,如圖2.13所示。

 2.13

第十三步:根據本機的磁盤大小給Linux虛擬機分配磁盤,並選擇“將虛擬機磁盤拆分為多個文件”,然后單擊“下一步”按鈕,如圖2.14所示。

2.14

第十四步:根據需要修改存儲磁盤文件的位置。如果不更改,默認存儲在Linux虛擬機安裝文件目錄,如圖2.15所示。

2.15

第十五步:單擊“完成”按鈕,完成新虛擬機向導,如圖2.16所示。

 2.16

第十六步:在虛擬機名字上單擊鼠標右鍵,選擇“設置”來設置安裝的ISO文件。選擇“CD/DVD à 使用ISO鏡像文件”,選擇自己的鏡像文件,然后單擊“確定”按鈕,如圖2.17所示。

 2.17

第十七步:開啟設置好的虛擬機,進行Linux虛擬機安裝,如圖2.18所示。

 2.18

第十八步:選擇“不再顯示此消息”,然后單擊“取消” 按鈕。

第十九步:進入到VMware虛擬機選擇“Instell or upgrade an existing system”單擊“回車” 鍵進行安裝。或者不作任何操作,它將倒計時90秒后自動安裝。進入到VMware后可以用“Ctrl+Alt”組合鍵退出VMware,如圖2.19所示。

 2.19

第二十步:進入到安裝前測試頁面,通過方向鍵選擇“Skip”按鈕跳過測試,如圖2.20所示。

 2.20

第二十一步:用鼠標單擊“Next” 按鈕進行下一步操作,如圖2.21所示。

 2.21

第二十二步:用鼠標選擇“中文簡體”,然后單擊“下一步”按鈕,如圖2.22所示。

 

 

 

 

 

 

 

 

 圖2.22

第二十三步:鍵盤選擇“美國英語式,然后單擊“下一步” 按鈕,如圖2.23所示。

 

 

 

 

 

 

 

圖2.23

 

第二十四步:選擇“基本存儲設備”,然后單擊“下一步” 按鈕,如圖2.24所示。

 

 

 

 

 

 

圖2.24

第二十五步:單擊“忽略所有數據” 按鈕,如圖2.25所示。

 2.25

 

第二十六步:設置Linux虛擬機的“主本名”,然后單擊“下一步” 按鈕,如圖2.26所示。

 2.26

第二十七步:設置時間區域,勾選系統使用UTC時間,然后單擊“下一步”按鈕,如圖2.27所示。

2.27

第二十八步:設置管理員用戶root的密碼,如圖2.28所示。(統一使用123456)

2.28

第二十九步:選擇“使用所有空間”,然后單擊“下一步”按鈕,如圖2.29所示。

 2.29 

第三十步:單擊“將修改寫入磁盤”按鈕,如圖2.30所示。

2.30 

第三十一步:選擇Minimal,然后單擊“下一步” 按鈕。這里安裝的是純命令行版,也可以安裝桌面版,可以選擇Desktop或者Minimal Desktop,如圖2.31所示。

 

2.31

 

第三十二步:進行安裝界面,這里一共需要安裝332個軟件包,如圖2.32所示。

 2.32 

第三十三步:單擊“重新引導” 按鈕,完成安裝,如圖2.33所示。

 

 2.33

 

第三十四步:測試安裝是否成功。輸入用戶root和用戶密碼,如果能進入到如下界面,說明安裝成功,如圖2.34所示。

2.34

[root@localhost ~]#

root:是登錄到Linux系統的用戶名。

localhost:是Linux系統的主機名。

~:是root用戶所在的位置。“~”是表示root的家目錄,root家目錄實際路徑是/home/root。

 

2.linux虛擬機 安裝JDK和Hadoop

為在生產環境中hadoop大數據集群是由多台服務器組成的集群,為了方便學習這里采用在VMware平台中搭建虛擬機的方式模擬hadoop大數據集群。若要想實現hadoop大數據集群環境,至少需要4台虛擬機,其中1台Master節點,3台Slave節點,每台節點配置環境。為了實現hadoop集群須有一台Master節點和多台Slave節點(其中IP地址第三段“153”需要跟自己的VMware工具平台網段一致,可以通過在VMware工作平台中單擊“編輯-->虛擬網絡編輯器-->VMware8-->子網”來查看)。

 

 

 

具體配置如表5.1所示。

5.1 集群節點信息

主機名

IP地址

Master001

192.168.153.200

Slave001

192.168.153.201

Slave002

192.168.153.202

Slave003

192.168.153.203

1. 基礎信息配置。

首先在一台虛擬機中設置基礎信息,假設這台虛擬機為Master001。在基礎信息中需要設置主機名、IP地址和名稱解析等配置,這些配置文件只有root用戶才有改寫權限,所以需要使用root用戶登錄來編寫這些配置文件。

1)修改主機名

通過編輯network文件,將HOSTNAME值修改為新的主機名,具體操作如下。

[root@localhost ~]# vi /etc/sysconfig/network

改寫:

HOSTNAME=Master001

2)設置靜態IP

通過編輯ifcfg-eth0文件來設置IP地址,具體操作如下。

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

改寫:

ONBOOT=yes

BOOTPROTO=static

插入:

IPADDR=192.168.153.200

NETMASK=255.255.255.0

GATEWAY=192.168.153.2

DNS1=192.168.153.2

 

3)設置hosts

hosts文件是Linux系統中負責IP地址與域名快速解析的文件,需要配置其它的幾個節點的主機名和IP來快速訪問集群中的其它節點。

具體操作如下:

[root@localhost ~]# vi  /etc/hosts

插入:

192.168.153.200 Master001

192.168.153.201 Slave001

192.168.153.202 Slave002

192.168.153.203 Slave003

4)使設置生效

只是修改IP地址可以重啟網絡服務即可以生效,操作如下:

[root@localhost ~]# service network restart

如果修改了主機名,必須重啟虛擬機才能生效,操作如下:

[root@localhost ~]# reboot

5)驗證設置是否成功

啟動成功后信息欄從“[root@localhost ~]#”變成了“[root@Master001 ~]#”,這時主機名修改成功。

驗證IP地址設置是否成功可以通過ifconfig命令查看IP地址,如果出現“eth0”網絡名稱和IP地址,說明靜態IP設置成功,這時可以使用ping命令進一步驗證是否能聯通內網。,具體操作如下:

[root@Master001 ~]# ifconfig

eth0 Link encap:Ethernet  HWaddr 00:0C:29:45:78:7B  

inet addr:192.168.153.101  Bcast:192.168.153.255  Mask:255.255.255.0

......

RX bytes:8610 (8.4 KiB)  TX bytes:9849 (9.6 KiB)

 

lo Link encap:Local Loopback  

net addr:127.0.0.1  Mask:255.0.0.0

......

RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

 

[root@Master001 ~]# ping 192.168.153.1 (此處的153 應改為你們 NAT 模式下子網的第三段)

PING 192.168.153.1 (192.168.153.1) 56(84) bytes of data.

64 bytes from 192.168.153.1: icmp_seq=1 ttl=128 time=0.450 ms

......

64 bytes from 192.168.153.1: icmp_seq=4 ttl=128 time=0.522 ms

^C

--- 192.168.153.1 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 4019ms

rtt min/avg/max/mdev = 0.450/0.501/0.572/0.055 ms

驗證外網是否聯通。VMware平台中的虛擬是通過與虛擬機共享主機的IP地址來訪問外網,虛擬機要連接網絡必須保證宿主機能夠正常訪問網絡,虛擬機是否能訪問外網可以通過“ping www.baidu.com”命令來驗證,如果能ping通百度說明外網訪問成功。

[root@Master001 ~]# ping www.baidu.com

PING www.baidu.com (180.97.33.107) 56(84) bytes of data.

64 bytes from 180.97.33.107: icmp_seq=1 ttl=128 time=36.2 ms

......

64 bytes from 180.97.33.107: icmp_seq=6 ttl=128 time=41.2 ms

^C

--- www.baidu.com ping statistics ---

6 packets transmitted, 6 received, 0% packet loss, time 5729ms

rtt min/avg/max/mdev = 36.278/38.147/41.229/1.858 ms

6)創建普通用戶

計算機的操作難免會有失誤,如果關於內核的操作不當,就會對系統造成重大破壞,如一些工具不能使用,系統無法啟動等等。為了減少誤操作對系統造成的傷害,出於安全性需要建立普通用戶。

1)創建用戶名叫hadoop的用戶。

[root@Master001 ~]# adduser hadoop

2)給hadoop用戶指定密碼(密碼:123456)。

[root@Master001 ~]# passwd hadoop

更改用戶 hadoop 的密碼。

新的 密碼:

無效的密碼: 過於簡單化/系統化

無效的密碼: 過於簡單

重新輸入新的 密碼:

passwd: 所有的身份驗證令牌已經成功更新。

3)驗證用戶是否創建成功,如果能成功切換表示用戶創建成功。

[root@Master001 ~]# su hadoop

[hadoop@Master001 ~]#

7)安裝Xshell

XShell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口,它接收用戶輸入的命令並把它送入內核去執行。可以把XShell理解為一個客戶端,可以通過這個客戶端來遠程操作Linux系統,就像用Navicat去連接MySQL服務器一樣,可以遠程操作MySQL數據庫。

3. 安裝XShell上傳文件

1.安裝

1)在安裝文件目錄中找到Xme4.exe文件,並雙擊安裝Xme4.exe。

2)勾選同意,單擊“下一步”按鈕,如圖2.35所示。

 2.35

3)輸入名字、公司和密鑰,單擊“下一步”按鈕,如圖2.36所示。

 

 Product Key:101210-450789-147200

                       圖2.36 

4)修改安裝地址,單擊“下一步”按鈕,如圖2.37所示。

2.37 

5)選擇經典安裝模式,單擊“下一步”按鈕,如圖2.38所示。

2.38

 

6)以后操作均為默認選項,當出現“安裝成功”后單擊“完成”按鈕即可。

3. 連接XSHell

1)雙擊XShell圖標,單擊“新建連接”按鈕,打開XShell終端,如圖2.39所示。

2.39

2)配置需要連接的虛擬機IP地址、用戶名和密碼。

這里使用hadoop用戶登錄,連接成功后將進入到hadoop用戶家目錄,如果是root用戶登錄連接成功將進入root用戶家目錄,如圖2.40、2.41所示。

(主機號應為你所配置的虛擬機IP(即IPADDR 后所寫網段) 可在虛擬機中使用 ifconfig命令查看)

2.40

 2.41

3)選擇連接XShell,如果信息欄出現“[hadoop@Master001 ~]$”表示連接成功。

4)切換到家里目錄,在家目錄下創建一個名字叫software的文件夾,用於管理安裝文件。

[hadoop@Master001 ~]$ cd ~

[hadoop@Master001 ~]$ mkdir software

5)進入到softeware目錄。

[hadoop@Master001 ~]$ cd software

[hadoop@Master001 software]$

4. 利用Xftp工具上傳文件

1)XShell工具中自帶Xftp工具快捷鍵,可以利用Xftp快捷鍵進入到Xftp工具中,Xftp工具可以從XShell工作界面,單擊“Xftp快捷鍵”按鈕登錄,登錄的用戶與XShell登錄的用戶為同一用戶。如圖2.42所示。也可以單獨通過雙擊Xftp工具輸入IP地址、用戶名和密碼單獨登錄。

如果使用XShell快捷方式登錄,用戶登錄上傳的哪個文件權限將屬於該用戶也是經常失誤的地方。

 2.42

2)圖5.11中,左邊界面是宿主機中的界面,右邊界面是虛擬機中的界面,下面界面是傳輸數據的進度條界面。可以在宿主機中找到要上傳的文件,通過雙擊或者拖拽的方式將文件上傳到虛擬機中;也可以在虛擬機中拖拽文件到宿主機中下載文件,通過XShell快捷方式登錄到Xftp工具。虛擬機界面中目錄位置是登錄之前的位置,如果這個位置不是想要的位置,可在Xftp中通過選擇欄進行選擇。

hadoop-2.6.5.tar.gz和jdk-8u131-linux-x64.tar.gz安裝包文件上傳到虛擬機software文件夾中,如圖2.43所示。

 2.43

4. 安裝JDK

1)在XShell中輸入ls命令可以查看Xftp上傳的文件內容,通過tar命令解壓jdk-8u131-linux-x64.tar.gz壓縮文件,操作如下:

[hadoop@Master001 software]$ ls

jdk-8u131-linux-x64.tar.gz

hadoop-2.6.5.tar.gz

 

[hadoop@Master001 software]$ tar -zxf jdk-8u131-linux-x64.tar.gz

[hadoop@Master001 software]$ ls

jdk-8u131-linux-x64.tar.gz

hadoop-2.6.5.tar.gz

jdk1.8.0_131

2)復制JDK安裝目錄

進入到jdk1.8.0_131目錄,使用pwd命令打印jdk安裝路徑,利用鼠標選擇復制路徑。

[hadoop@Master001 software]$ cd jdk1.8.0_131/

[hadoop@Master001 jdk1.8.0_131]$ pwd

/home/hadoop/software/jdk1.8.0_131

3)配置環境變量

Linux系統中環境變量分為兩種:全局變量和局部變量。profile文件是全局變量配置文件,只有管理員用戶對profile文件才有寫入權限,所以要編寫profile文件需要切換到root用戶,因為在全局變量中配置的環境變量對所有用戶都有效。.bashrc文件是局部變量配置文件,在.bashrc文件配置的環境變量只對當前用戶有效。

本文是配置的全局環境變量。操作如下:

[hadoop@Master001 jdk1.8.0_131]$ su root

密碼:

[root@Master001 ~]# vi /etc/profile

插入(在最下面):

#java

export JAVA_HOME=/home/hadoop/software/jdk1.8.0_131

export PATH=$PATH:$JAVA_HOME/bin

4)使用環境變量生效

[root@Master001 ~]# source /etc/profile

 

5)驗證JDK是否安裝成功

輸入java或者java -version,如果出現java命令的詳細說明或者出現JDK版本號,表示安裝成功,如果出現“-bash: dddd: command not found”表示安裝失敗。

6. 安裝hadoop

1)切換到hadoop用戶,並進入到software目錄,使用ls命令可以查看Xftp上傳的文件內容,通過tar命令解壓hadoop-2.6.5.tar.gz壓縮文件。操作如下:

[root@Master001 ~]# su hadoop

[hadoop@Master001 ~]$ cd software/

[hadoop@Master001 software]$ ls

jdk-8u131-linux-x64.tar.gz   jdk1.8.0_131

hadoop-2.6.5.tar.gz

[hadoop@Master001 software]$ tar -zxf hadoop-2.6.5.tar.gz

[hadoop@Master001 software]$ ls

jdk-8u131-linux-x64.tar.gz   jdk1.8.0_131

hadoop-2.6.5.tar.gz hadoop-2.6.5

2)進入hadoop安裝目錄

進入到hadoop-2.6.5目錄,使用pwd命令打印hadoop安裝路徑,利用鼠標選擇復制路徑。

[hadoop@Master001 software]$ cd hadoop-2.6.5

[hadoop@Master001 hadoop-2.6.5]$ pwd

/home/hadoop/software/hadoop-2.6.5

3)配置hadoop環境變量

切換到root用戶,編輯profile文件,並插入hadoop配置文件。操作如下:

[hadoop@Master001 hadoop-2.6.5]$ su root

密碼:

[root@Master001 ~]# vi /etc/profile

插入:

#hadoop

export HADOOP_HOME=/home/hadoop/software/hadoop-2.6.5

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export YARN_HOME=$HADOOP_HOME

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

4)使環境變量生效

[root@Master001 ~]# source /etc/profile

5)驗證hadoop安裝是否成功

輸入hadoop命令,如果出現hadoop命令相關的詳細信息,表示安裝成功;如果出現“-bash: dddd: command not found”,表示安裝失敗。

6)配置core-site.xml文件

關於Hadoop配置文件的講解視頻可掃描二維碼觀看。【配置Hadoop文件】

切換到hadoop用戶,進入到hadoop-2.6.5/etc/hadoop/目錄,編輯core-site.xml文件。

[root@Master001 ~]# su hadoop

[hadoop@Master001 ~]$ cd software/hadoop-2.6.5/etc/hadoop/

[hadoop@Master001 hadoop]$ ls

core-site.xml mapred-site.xml salves

hadoop-env.cmd   hdfs-site.xml yarn-site.xml

......

[hadoop@Master001 hadoop]$ vi core-site.xml

插入:

<configuration>

<!--指定HDFS存儲入口-->

<property>

<name>fs.defaultFS</name>

<value>hdfs://Master001:9000</value>

</property>

 

<!--指定hadoop臨時目錄-->

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/software/hadoop-2.6.5/tmp</value>

</property>

</configuration>

7)配置hadoop-env.sh文件

編輯hadoop-env.sh文件,修改java_home地址,java_home地址是解壓的jdk地址,配置java_home是為了使用java的現實。

修改:

# The java implementation to use.

export JAVA_HOME=/home/hadoop/software/jdk1.8.0_131

8)配置hdfs-site.xml文件

hdfs-site.xml文件是hadoop2.0以后版本的必備配置文件之一,可以在hdfs-site.xml配置集群名字空間、訪問端口、URL地址、故障轉移等配置。

[hadoop@Master001 hadoop]# vi hdfs-site.xml

插入:

<configuration>

<!--配置數據備份數-->

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<!--設置secondaryNamenode運行的節點-->

        <property>

                <name>dfs.namenode.secondary.http-address</name>

                <value>Slave002:50070</value>

        </property>

</configuration>

9)配置mapred-site.xml文件

hadoop包里是沒有mapred-site.xml文件,需要通過mapred-site.xml.template模版文件復制出mapred-site.xml文件。操作如下:

[hadoop@Master001 hadoop]# cp mapred-site.xml.template mapred-site.xml

[hadoop@Master001 hadoop]# vi mapred-site.xml

插入:

<configuration>

<!--設置jar程序啟動Runner類的main方法運行在yarn集群中-->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

10)配置slaves文件

hadoop集群中所有的datanode節點都需要寫入到slaves文件中,因為它是用來指定存儲數據的節點文件,Master會讀取salves文件來獲取存儲信息,根據slaves文件來做資源平衡。

注意:

1)slaves文件名全部是小寫,有很多初學者使用vi Slaves來編輯slaves文件,它將會在hadoop目錄中重新創建一個首字母為大寫的slaves文件,這樣是錯誤的;

2)slaves文件打開后里面有一個“localhost”,這個localhost需要把刪除,如果沒有刪除集群會把Master也當做DataNode節點,這樣會造成Master節點負載過重。

[hadoop@Master001 hadoop]# vi slaves

刪除:

localhost

插入:

Slave001

Slave002

Slave003

11)配置yarn-site.xml

yarn-site.xml文件是ResourceManager進程相關配置參數。

[hadoop@Master001 hadoop]# vi yarn-site.xml

插入:

<configuration>

<!--設置對外暴露的訪問地址為Master001-->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>Master001</value>

</property>

 

<!--NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,才可運行MapReduce程序-->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

6. 安裝ssh

ssh是一種遠程傳輸通信協,用於兩台或多台節點之間數據傳輸。通過yum方式在線安裝ssh,yum是在線安裝工具,因此使用yum安裝時必須連接網絡。yum是一個Shell前端軟件包管理器,它能夠從yum服務器自動下載rpm包然后安裝,一次安裝完成所有需要的軟件包,不必一次次的下載,非常的簡單方便。

1)yum工具屬於root用戶工具,所以需要切換到root用戶進行在線安裝。

[hadoop@Master001 hadoop]$ su root

密碼:

[root@Master001 ~]#

2)在安裝ssh之前需要先查找yum庫有哪些ssh軟件的rpm包。

[root@Master001 ~]# yum list | grep ssh

openssh.x86_64 5.3p1-84.1.el6 updates

openssh-server.x86_64 5.3p1-123.el6_9 updates

openssh-clients.x86_64 5.3p1-123.el6_9 updates

......

3)使用yum工具在線安裝server和clients軟件。

[root@Master001 ~]# yum install -y openssh-clients.x86_64

[root@Master001 ~]# yum install -y openssh-server.x86_64

安裝過程如圖2.44所示。

2.44

4)驗證ssh是否安裝成功

驗證方法一:輸入ssh命令,如果出現ssh命令的詳細信息表示安裝成功,如果出現" -bash: dddd: command not found"則表示安裝失敗。

[root@Master001 ~]# ssh

usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]

           [-D [bind_address:]port] [-e escape_char] [-F configfile]

           [-I pkcs11] [-i identity_file]

           [-L [bind_address:]port:host:hostport]

           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]

           [-R [bind_address:]port:host:hostport] [-S ctl_path]

           [-W host:port] [-w local_tun[:remote_tun]]

           [user@]hostname [command]

驗證方法二:使用rpm工具驗證。輸入rpm -qa | grep ssh命令查找已經安裝的ssh相關程序,如果出現server和clients表示安裝成功。

[root@Master001 ~]# rpm -qa | grep ssh

openssh-server-5.3p1-123.el6_9.x86_64

openssh-clients-5.3p1-123.el6_9.x86_64

libssh2-1.4.2-1.el6.x86_64

openssh-5.3p1-123.el6_9.x86_64

7 復制虛擬機

現在已經安裝好一台節點虛擬機的配置,其它四台節點虛擬機可以通過復制的方式來安裝,但在復制虛擬機之前需要先把虛擬機關機。

1. 關閉虛擬機(halt命令需要root權限)

[root@Master001 ~]# halt

2. 復制虛擬機

復制出另它四台虛擬機,並把復制的文件夾重新命名為Master001、Slave001、Slave002、Slave003方便管理,如圖2.45所示。

2.45

3. 打開虛擬機

1)通過“文件-->打開”選擇復制的虛擬機來打開虛擬機。為了方便管理需將虛擬名字修改為文件夾名稱,如圖2.46所示。

 2.46

2)啟動虛擬機

單擊左邊虛擬機名稱,待右邊出現對應的界面后,單擊“開啟此虛擬機”按鈕打開虛擬機,如圖2.47所示。

 2.47

3)選擇“我已復制該虛擬機”

每一台計算機都有一個唯一的MAC地址,虛擬機也是一樣。雖然它是虛擬狀態的,但它同樣有內存、處理器、硬盤和MAC地址等。虛擬機是通過復制出另一台一模一樣的虛擬機,包括MAC地址,所以需要在啟動副本虛擬機時選擇“我已復制該虛擬機”按鈕來告訴VMware平台“我這台虛擬機需要重新生成一個新的MAC地址”。如果選擇“我已移動該虛擬機”按鈕,VMware平台將不會為新虛擬機生成新的MAC地址,如圖2.48所示。

2.48

4. 修改虛擬配置

1)查看MAC地址

修改MAC地址之前需要到70-persistent-net.reles文件去查看最新的MAC地址,最后的一條為最新的MAC地址,並記住ATTR和NAME的值,如圖2.49所示。

[root@Master001 ~]# cat /etc/udev/rules.d/70-persistent-net.rules

 2.49

 

2)修改MAC地址和IP地址

需要到profile文件中修改最新的MAC地址和網絡名稱,按之前約定的配置規則來修改IP地址,如圖2.50所示。

[root@Master001 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

改寫:

2.50

3)修改主機名

按之前約定的配置規則來修改主機名。

[root@Master001 ~]# vi /etc/sysconfig/network

改寫:

HOSTNAME=Slave003

4)使修改生效

如果只是修改profile文件,可以重啟網絡服務即可使修改生效。如果修改主機名,需要重啟虛擬機才能生效。

[root@Master001 ~]# reboot

5)驗證修改是否成功

如果登錄主機名變成修改的主機名表示主機名修改成功,如圖2.51所示。

2.51

輸入用戶名和密碼登錄后,輸入ifconfig命令,如果出現修改后的網絡名稱和IP地址表示靜態IP修改成功,如圖2.52所示。

 2.52

5. 修改其它虛擬機

依次操作“5.2.3.2小節、復制虛擬機”修改其它幾台虛擬機,當所有虛擬機都修改完成后可以互相ping IP地址或主機名來驗證內網是否聯通。

[hadoop@Slave003 ~]$ ping 192.168.153.101

PING 192.168.153.101 (192.168.153.101) 56(84) bytes of data.

64 bytes from 192.168.153.101: icmp_seq=1 ttl=64 time=0.797 ms

64 bytes from 192.168.153.101: icmp_seq=2 ttl=64 time=0.774 ms

^C

--- 192.168.153.101 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1876ms

rtt min/avg/max/mdev = 0.774/0.785/0.797/0.030 ms

[hadoop@Slave003 ~]$ ping Master001

PING Master001 (192.168.153.101) 56(84) bytes of data.

64 bytes from Master001 (192.168.153.101): icmp_seq=1 ttl=64 time=1.69 ms

64 bytes from Master001 (192.168.153.101): icmp_seq=2 ttl=64 time=0.703 ms

^C

--- Master001 ping statistics ---

2 packets transmitted, 3 received, 0% packet loss, time 2391ms

rtt min/avg/max/mdev = 0.703/1.061/1.697/0.452 ms

2.5 設置SSH免密

安裝Hadoop之前,由於集群中大量主機進行分布式計算需要相互進行數據通信,服務器之間的連接需要通過ssh來進行,所以要安裝ssh服務。默認情況下通過ssh登錄服務器需要輸入用戶名和密碼進行連接,如果不配置免密碼登錄,每次啟動hadoop都要輸入密碼用來訪問每台機器的DataNode,因為Hadoop集群都有上百或者上千台機器,靠人力輸入密碼工程耗大,所以一般都會配置ssh的免密碼登錄。在hadoop集群中Master節點需要對所有節點進行訪問,了解每個節點的健康狀態,所以只需要對Master做免密設置,該集群是高可用集群,有兩個Master。這兩個Master都需要生成自己的私密,然后對所有節點(包括自己)傳輸密鑰,以Master001為例,Master002只需要執行Master001相同操作即可。具體操作如下。

1. 生成密鑰

密鑰就像是進入一扇門的鑰匙,生成密鑰就是生成這把鑰匙。由於要對hadoop用戶進行免密設置,所以需要切換到hadoop用戶,並回到該用戶的家目錄。

執行ssh-keygen -t rsa -P '' 命令后將在/home/hadoop/.ssh/目錄下以rsa方式生成id_rsa的密鑰。

[hadoop@Master001 ~]$ cd ~

[hadoop@Master001 ~]$ ssh-keygen -t rsa -P ''

Generating public/private rsa key pair.

Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): (出現此段后按enter繼續)

Your identification has been saved in /home/hadoop/.ssh/id_rsa.

Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.

The key fingerprint is:

2c:a9:91:36:4b:18:e6:09:60:f9:1a:22:23:3b:d6:af hadoop@Master001

The key's randomart image is:

+-------[ RSA 2048]-----+

|...             |

|o.          |

|. + |

|== = . o |

|+oB * o S |

|oo + = . |

|..  +   |

|     . |

|   E.   |

+-----------------------+

2. 對所有節點進行免密

將密鑰分發給集群中所有節點(包括自己),就免去輸入密碼去訪問其它虛擬機。執行ssh-copy-id命令后,會將id_rsa中的密鑰傳輸到目標虛擬機的/home/hadoop/.ssh/authorized_keys文件中。

[hadoop@Master001 ~]$ ssh-copy-id Master001

hadoop@master001's password:(輸入Master001密碼) 

Now try logging into the machine, with "ssh 'Master001'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[hadoop@Master001 ~]$ ssh-copy-id Slave001

hadoop@slave001's password: (輸入Slave001密碼)

Now try logging into the machine, with "ssh 'Slave001'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

 [hadoop@Master001 ~]$ ssh-copy-id Slave002

hadoop@slave002's password: (輸入Slave002密碼)

Now try logging into the machine, with "ssh 'Slave002'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

 [hadoop@Master001 ~]$ ssh-copy-id Slave003

hadoop@slave003's password: (輸入Slave003密碼)

Now try logging into the machine, with "ssh 'Slave003'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

3. 驗證免密設置是否成功

驗證免密是免密設置最關鍵的一步,如果不輸入密碼就能訪問到目標虛擬機,表示免密設置成功。

[hadoop@Master001 ~]$ ssh Master001

Last login: Tue Dec 19 14:44:02 2017 from 192.168.153.1

[hadoop@Master001 ~]$ exit

logout

Connection to Master001 closed.

 [hadoop@Master001 ~]$ ssh Slave001

Last login: Fri Dec 15 08:38:54 2017 from 192.168.153.1

[hadoop@Slave001 ~]$ exit

logout

Connection to Slave001 closed.

[hadoop@Master001 ~]$ ssh Slave002

Last login: Fri Dec 15 08:38:56 2017 from 192.168.153.1

[hadoop@Slave002 ~]$ exit

logout

Connection to Slave002 closed.

[hadoop@Master001 ~]$ ssh Slave003

Last login: Tue Dec 19 14:44:05 2017 from 192.168.153.1

[hadoop@Slave003 ~]$ exit

logout

Connection to Slave003 closed.

[hadoop@Master001 ~]$

2.6 啟動Hadoop集群

1. 在Master001中格式化namenode

Master001中格式化namenode會生成~/software/hadoop-2.6.5/tmp目錄,該目錄中存放版本號和元數據等相關信息。

[hadoop@Master001 ~]$ hdfs namenode -format

2. 傳送tmp文件到其它節點

[hadoop@Master001 ~]$ cd ~/software/hadoop-2.6.5/

[hadoop@Master001 hadoop-2.6.5]$ ls

bin   etc  ...   sbin   share  tmp

[hadoop@Master001 hadoop-2.6.5]$ scp  -r  tmp/  Slave001:~/software/hadoop-2.6.5/

[hadoop@Master001 hadoop-2.6.5]$ scp  -r  tmp/  Slave002:~/software/hadoop-2.6.5/

[hadoop@Master001 hadoop-2.6.5]$ scp  -r  tmp/  Slave003:~/software/hadoop-2.6.5/

3. 啟動hdfs

啟動hdfs只需要在Master001中執行start-dfs.sh 即可。它分別會在Master001啟動namenode進程,在Slave001、Slave002和Slave003中啟動datanode進程。

[hadoop@Master001 ~]$ start-dfs.sh 

Starting namenodes on [Master001]

Master001: starting namenode, logging to /home/hadoop/software/hadoop-2.6.5/logs/hadoop-hadoop-namenode-Master001.out

Slave002: starting datanode, logging to /home/hadoop/software/hadoop-2.6.5/logs/hadoop-hadoop-datanode-Slave002.out

Slave003: starting datanode, logging to /home/hadoop/software/hadoop-2.6.5/logs/hadoop-hadoop-datanode-Slave003.out

Slave001: starting datanode, logging to /home/hadoop/software/hadoop-2.6.5/logs/hadoop-hadoop-datanode-Slave001.out

Starting journal nodes [Slave001 Slave002 Slave003]

Slave003: starting journalnode, logging to /home/hadoop/software/hadoop-2.6.5/logs/hadoop-hadoop-journalnode-Slave003.out

Slave001: starting journalnode, logging to /home/hadoop/software/hadoop-2.6.5/logs/hadoop-hadoop-journalnode-Slave001.out

Slave002: starting journalnode, logging to /home/hadoop/software/hadoop-2.6.5/logs/hadoop-hadoop-journalnode-Slave002.out

4. 啟動MapReduce

啟動MapReduce只需要在Master001中執行start-yarn.sh 即可。它分別會在Master001啟動resourcemanager進程,在Slave001、Slave002和Slave003中啟動nodemanager進程。

[hadoop@Master001 ~]$ start-yarn.sh 

starting yarn daemons

starting resourcemanager, logging to /home/hadoop/software/hadoop-2.6.5/logs/yarn-hadoop-resourcemanager-Master001.out

Slave003: starting nodemanager, logging to /home/hadoop/software/hadoop-2.6.5/logs/yarn-hadoop-nodemanager-Slave003.out

Slave001: starting nodemanager, logging to /home/hadoop/software/hadoop-2.6.5/logs/yarn-hadoop-nodemanager-Slave001.out

Slave002: starting nodemanager, logging to /home/hadoop/software/hadoop-2.6.5/logs/yarn-hadoop-nodemanager-Slave002.out

4. 驗證集群是否成功啟動

當集群啟動成功后每個節點中都有一些必須存在的進程。具體進程如下:

[hadoop@Master001 ~]$ jps

3766 Jps

3510 ResourceManager

3118 NameNode

[hadoop@Slave001 ~]$ jps

2610 NodeManager

2500 DateNode

2745 Jps

[hadoop@Slave002 ~]$ jps

2675 Jps

2549 NodeManager

2439 DateNode

2297 SencodaryManager

[hadoop@Slave003 ~]$ jps

2737 Jps

2611 NodeManager

2501 DateNode


免責聲明!

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



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