記一次Hadoop安裝部署過程


實驗名稱:Hadoop安裝部署

一、實驗環境:

虛擬機數量:3個 (1個master,2個slave:slave01,slave02)

主節點master信息:

  • 操作系統:CentOS7.5

  • 軟件包位置:/home/zkpk/tgz

  • 數據包位置:/home/zkpk/experiment

  • 已安裝軟件:無

從節點slave01信息:

  • 操作系統:CentOS7.5

  • 軟件包位置:/home/zkpk/tgz

  • 數據包位置:/home/zkpk/experiment

  • 已安裝軟件:無

從節點slave02信息:

  • 操作系統:CentOS7.5

  • 軟件包位置:/home/zkpk/tgz

  • 數據包位置:/home/zkpk/experiment

  • 已安裝軟件:無

二、實驗目的:

  • 掌握 linux系統基礎

  • 熟悉hadoop操作指令

  • 掌握配置集群節點間免密登錄

  • 掌握配置JDK

  • 掌握配置部署hadoop的步驟和配置相關環境文件

三、實驗要求:

獨立完成hadoop的安裝部署。

四、實驗內容:

在若干節點中,安裝部署hadoop分布式集群,並會啟動集群以及使用 Web
UI查看集群是否成功啟動;在搭建好的hadoop分布式集群中運行PI實例檢查集群是否成功;

實驗內容流程圖如下。

五、實驗步驟:

1 登錄大數據實驗平台,進入實驗,(界面顯示為master、slave01、slave02)

2 確保各台虛擬機能ping通外網(上圖界面中master、slave01、slave02,分別對應一個虛擬機,隨后簡稱為“界面各虛擬機”)

2.1 在桌面空白處右擊鼠標,打開一個終端(下圖根據centos7所使用的桌面系統不同會稍有區別,一般使用gnome或xfce)

2.2ping一個外網網址,確保能夠ping通,ctrl+c結束ping命令的執行(大數據實驗室提供的虛擬機默認已可ping通外網)



3 配置主機名(“界面各虛擬機”分別操作此步驟,主機名分別設置為master, slave01,slave02)

說明:此處以界面虛擬機master的操作為例(默認已經配置好主機名稱)

3.1 以下操作需要root權限,所以先切換成root用戶

[zkpk@localhost ~]$ su root

3.2 使用gedit編輯主機名(或使用vim)

3.2.1 編輯主機名文件

[root@localhost ~]# gedit /etc/hostname

3.2.2 將原來內容替換為master

master

3.2.3 保存並退出
3.2.4 臨時設置主機名為master:

[root@localhost ~]# hostname master

3.2.5 檢測主機名是否修改成功:

說明:bash命令讓上一步操作生效

[root@localhost zkpk]# bash
[root@master zkpk]# hostname
master

4 配置時鍾同步(使用root權限;“界面各虛擬機”分別操作此步驟;若已配置過,請忽略此步驟)

說明:此處以master節點的操作為例

4.1 配置自動時鍾同步

4.1.1使用Linux命令配置

[root@master zkpk]# crontab -e

4.1.2 按”i ”鍵,進入插入模式;輸入下面的內容(星號之間和前后都有空格)

0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

4.1.3 按Esc退出插入模式,然后按”: ”鍵,輸入wq保存退出

4.2 手動同步時間,直接在Terminal運行下面的命令:

[root@master zkpk]# /usr/sbin/ntpdate cn.pool.ntp.org

5 關閉防火牆(使用root權限;“界面各虛擬機”分別操作此步驟;若已配置過,請忽略此步驟)

5.1 查看防火牆狀態(默認已經關閉防火牆)

[root@master ~]# systemctl status firewalld.service

5.2 在終端中執行下面命令:

說明:兩條命令分別是臨時關閉防火牆和禁止開機啟動防火牆

[root@master ~]# systemctl stop firewalld.service
[root@master ~]# systemctl disable firewalld.service

6 配置hosts列表(使用root權限;“界面各虛擬機”分別操作此步驟;默認已經配置)

6.1 先分別在各虛擬機中運行ifconfig命令,獲得當前節點的ip地址,如下圖是master的ip地址

6.2 編輯主機名列表文件:

[root@master zkpk]# vi /etc/hosts

6.3 將下面三行添加到/etc/hosts文件中,保存退出:

注意:
這里master節點對應IP地址是10.42.0.93,slave01對應的IP是10.42.0.94,slave02對應的IP是10.42.0.95,而自己在做配置時,需要將IP地址改成自己的master、slave01和slave02對應的IP地址。

10.42.0.93 master
10.42.0.94 slave01
10.42.0.95 slave02

6.4 Ping主機名

[root@master ~]# ping master -c 3
[root@master ~]# ping slave01 -c 3
[root@master ~]# ping slave02 -c 3

注意:參數-c 3表示之返回三行響應就中止。

6.5 如果出現下圖的信息表示配置成功:

7 免密鑰登錄配置(注意:使用zkpk用戶)

7.1 master節點上

7.1.1 先從root用戶,退回到普通用戶zkpk
[root@master ~]# su zkpk
[zkpk@master ~]$
7.1.2 在終端生成密鑰,命令如下(一路按回車完成密鑰生成)

[zkpk@master ~]$ ssh-keygen -t rsa

7.1.3 生成的密鑰在用戶根目錄中的.ssh子目錄中,進入.ssh目錄,如下圖操作:

7.1.4 進行復制公鑰文件

[zkpk@master .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

7.1.5 執行ls -l命令后會看到下圖的文件列表:

7.1.6 修改authorized_keys文件的權限,命令如下:

[zkpk@master .ssh]$ chmod 600 ~/.ssh/authorized_keys

7.1.7 將專用密鑰添加到 ssh-agent 的高速緩存中

[zkpk@master .ssh]$ ssh-add ~/.ssh/id_rsa

7.1.8 將authorized_keys文件復制到slave01、slave02節點zkpk用戶的根目錄,命令如下:

說明:如果提示輸入yes/no的時候,輸入yes,回車。密碼是:zkpk

[zkpk@master .ssh]$ scp ~/.ssh/authorized_keys zkpk@slave01:~/
[zkpk@master .ssh]$ scp ~/.ssh/authorized_keys zkpk@slave02:~/

7.2 slave01節點

7.2.1 先從root用戶,退回到普通用戶zkpk,

[root@slave01 ~]# su zkpk

然后在終端生成密鑰,命令如下(一路點擊回車生成密鑰)

[zkpk@slave01 ~]$ ssh-keygen -t rsa

7.2.2 將authorized_keys文件移動到.ssh目錄

[zkpk@slave01 ~]$ mv authorized_keys ~/.ssh/

7.3 slave02節點

7.3.1 在終端生成密鑰,命令如下(一路點擊回車生成密鑰)

[zkpk@slave02 ~]$ ssh-keygen -t rsa

7.3.2 將authorized_keys文件移動到.ssh目錄

[zkpk@slave02 ~]$ mv authorized_keys ~/.ssh/

7.4 驗證免密鑰登陸

7.4.1 在master機器上遠程登錄slave01:

[zkpk@master ~]$ ssh slave01

7.4.2 如果出現下圖的內容表示免密鑰配置成功:

7.4.3 退出slave01遠程登錄
[zkpk@slave01 ~]$ exit
[zkpk@master ~]$
7.4.4 在master機器上遠程登錄slave02:

[zkpk@master ~]$ ssh slave02

7.4.5 如果出現下圖的內容表示免密鑰配置成功:

8 安裝JDK

注意:在三台節點master,slave01,slave02上分別操作此步驟

8.1 刪除系統自帶的jdk(如若出現下圖效果,說明系統自帶java,需要先卸載)

8.1.1 查看系統自帶jdk

[zkpk@master ~]$ rpm -qa | grep java

在slave01上執行:

[zkpk@slave01 ~]$ rpm -qa | grep java

在slave02上執行:

[zkpk@slave02 ~]$ rpm -qa | grep java

8.1.2 切換root用戶

[zkpk@master ~]$ su root

在slave01上執行:

[zkpk@slave01 ~]$ su root

在slave02上執行:

[zkpk@slave02 ~]$ su root

8.1.3 移除系統自帶的jdk

[root@master zkpk]# yum remove java-1.*

在slave01上執行:

[root@slave01 zkpk]# yum remove java-1.*

在slave02上執行:

[root@slave02 zkpk]# yum remove java-1.*

8.1.4 創建存放jdk文件目錄

[root@master zkpk]# mkdir /usr/java

在slave01上執行:

[root@slave01 zkpk] # mkdir /usr/java

在slave02上執行:

[root@slave02 zkpk] # mkdir /usr/java

8.2 將/home/zkpk/tgz下的JDK壓縮包解壓到/usr/java目錄下

[root@master zkpk]# tar -xzvf /home/zkpk/tgz/jdk-8u131-linux-x64.tar.gz -C /usr/java

在slave01上執行:

[root@slave01 zkpk]# tar -xzvf /home/zkpk/tgz/jdk-8u131-linux-x64.tar.gz -C /usr/java

在slave02上執行:

[root@slave02 zkpk]# tar -xzvf /home/zkpk/tgz/jdk-8u131-linux-x64.tar.gz -C /usr/java

8.2.1 退出root用戶

[root@master zkpk]# exit

在slave01上執行:

[root@slave01 zkpk]# exit

在slave02上執行:

[root@slave02 zkpk]# exit

8.3 配置zkpk用戶環境變量

8.3.1 使用gedit修改“.bash_profile”

[zkpk@master ~]$ gedit /home/zkpk/.bash_profile

8.3.2 復制粘貼以下內容添加到到上面gedit打開的文件中:
export JAVA_HOME=/usr/java/jdk1.8.0_131/
export PATH=$JAVA_HOME/bin:$PATH

在slave01上執行:

[zkpk@slave01 ~]$ gedit /home/zkpk/.bash_profile

復制粘貼以下內容添加到到上面gedit打開的文件中:

export JAVA_HOME=/usr/java/jdk1.8.0_131/
export PATH=$JAVA_HOME/bin:$PATH

在slave02上執行:

[zkpk@slave02 ~]$ gedit /home/zkpk/.bash_profile

復制粘貼以下內容添加到到上面gedit打開的文件中:

export JAVA_HOME=/usr/java/jdk1.8.0_131/
export PATH=$JAVA_HOME/bin:$PATH

8.4 使環境變量生效:

[zkpk@master ~]$ source /home/zkpk/.bash_profile

在slave01上執行:

[zkpk@slave01 ~]$ source /home/zkpk/.bash_profile

在slave02上執行:

[zkpk@slave02 ~]$ source /home/zkpk/.bash_profile

8.5 查看java是否配置成功:

[zkpk@master ~]$ java -version

9 安裝部署Hadoop集群(zkpk用戶)

說明:每個節點上的Hadoop配置基本相同,在master節點操作,然后復制到slave01、slave02兩個節點。

9.1 將/home/zkpk/tgz/hadoop目錄下的Hadoop壓縮包解壓到/home/zkpk目錄下

[zkpk@master ~]$ tar -xzvf /home/zkpk/tgz/hadoop-2.7.3.tar.gz -C /home/zkpk

9.2 配置hadoop-env.sh文件

9.2.1 使用gedit命令修改hadoop-env.sh文件

[zkpk@master ~]$ gedit /home/zkpk/hadoop-2.7.3/etc/hadoop/hadoop-env.sh

9.2.2 修改JAVA_HOME環境變量

export JAVA_HOME=/usr/java/jdk1.8.0_131/

9.3 配置yarn-env.sh文件

9.3.1 使用gedit命令修改yarn-env.sh文件

[zkpk@master ~]$ gedit ~/hadoop-2.7.3/etc/hadoop/yarn-env.sh

9.3.2 修改JAVA_HOME環境變量

export JAVA_HOME=/usr/java/jdk1.8.0_131/

9.4 配置core-site.xml 文件

9.4.1 使用gedit命令修改core-site.xml文件

[zkpk@master ~]$ gedit ~/hadoop-2.7.3/etc/hadoop/core-site.xml

9.4.2 用下面的代碼替換core-site.xml中的內容:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/zkpk/hadoopdata</value>
</property>
</configuration>

9.5 配置hdfs-site.xml文件

9.5.1 使用gedit命令修改hdfs-site.xml文件

[zkpk@master ~]$ gedit ~/hadoop-2.7.3/etc/hadoop/hdfs-site.xml

9.5.2 用下面的代碼替換hdfs-site.xml中的內容:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

9.6 配置yarn-site.xml文件

9.6.1 使用gedit命令修改yarn-site.xml文件

[zkpk@master ~]$ gedit ~/hadoop-2.7.3/etc/hadoop/yarn-site.xml

9.6.2 用下面的代碼替換yarn-site.xml中的內容:
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>

9.7 配置mapred-site.xml文件

9.7.1 復制mapred-site-template.xml文件:

[zkpk@master ~]$ cp ~/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template ~/hadoop-2.7.3/etc/hadoop/mapred-site.xml

9.7.2 使用gedit編輯mapred-site.xml文件:

[zkpk@master ~]$ gedit ~/hadoop-2.7.3/etc/hadoop/mapred-site.xml

9.7.3 用下面的代碼替換mapred-site.xml中的內容
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

9.8 配置slaves文件

9.8.1 使用gedit編輯slaves文件:

[zkpk@master ~]$ gedit ~/hadoop-2.7.3/etc/hadoop/slaves

9.8.2 將slaves文件中的內容用如下代碼替換
slave01
slave02

9.9 創建Hadoop數據目錄

[zkpk@master ~]$ cd
[zkpk@master ~]$ mkdir hadoopdata

9.10 將配置好的hadoop文件夾復制到從節點

9.10.1 使用scp命令將文件夾復制到slave01、slave02上:

說明:因為之前已經配置了免密鑰登錄,這里可以直接免密鑰遠程復制。

[zkpk@master ~]$ scp -r hadoop-2.7.3 zkpk@slave01:~/
[zkpk@master ~]$ scp -r hadoop-2.7.3 zkpk@slave02:~/

復制完成后,可以在slave01和slave02上檢驗是否復制成功。

10 配置Hadoop環境變量

注意:在三台節點分別操作此步驟,使用zkpk用戶權限

10.1 以master節點為例

[zkpk@master ~]$ gedit ~/.bash_profile

10.2 在.bash_profile末尾添加如下內容:

#HADOOP
export HADOOP_HOME=/home/zkpk/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

10.3 使環境變量生效:

[zkpk@master ~]$ source ~/.bash_profile

11 格式化Hadoop文件目錄(在master上執行)

11.1 格式化命令如下

[zkpk@master ~]$ hdfs namenode -format


12 啟動Hadoop集群(在master上執行)

12.1 運行start-all.sh命令

說明:格式化后首次執行此命令,提示輸入yes/no時,輸入yes。

[zkpk@master ~]$ start-all.sh

12.2 查看進程是否啟動

12.2.1 在master的終端執行jps命令,出現下圖效果

注意:前面那些數字可能因為自己的實驗環境不同而不同。

12.2.2 在slave01的終端執行jps命令,出現如下效果

12.2.3 在slave02的終端執行jps命令,出現如下效果

12.3 Web UI查看集群是否成功啟動

12.3.1 在master上打開Firefox瀏覽器,在瀏覽器地址欄中輸入http://master:50070,檢查namenodedatanode 是否正常,如下圖所示。


12.3.2打開瀏覽器新標簽頁,地址欄中輸入http://master:18088,檢查Yarn是否正常,如下圖所示。


12.4運行PI實例檢查集群是否成功

12.4.1執行下面的命令:

[zkpk@master~]$ hadoop jar ~/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 10 10

12.4.2會看到如下的執行結果:



12.4.3最后輸出:Estimated value of Pi is 3.20000000000000000000


免責聲明!

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



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