超級無敵詳細使用ubuntu搭建hadoop完全分布式集群


一、軟件准備

  1. 安裝VMware
  2. 下載ubuntu鏡像(阿里源ubuntu下載地址)選擇自己適合的版本,以下我使用的是18.04-server版就是沒有桌面的。安裝桌面版如果自己電腦配置不行的話啟動集群容易卡死。

(說明一下哈就是桌面版和服務器版沒什么太大的區別,桌面版為個人電腦所配置,預裝了圖形界面和一些其他軟件,比如LibreOffice,音樂播放器,游戲等等,而服務器版沒有這些東西,服務器版啟動之后只有一個黑屏+光標,所有的操作都是命令形式的)


  1. 下載Hadoop和jdk(鏈接:https://pan.baidu.com/s/1QL4flw5_XRhVrGouZyPhjg
    提取碼:a0z6 )也可以去官網下載。
  2. 准備xshell和xftp后期要使用xftp網虛擬機上上傳文件(鏈接:https://pan.baidu.com/s/1nkMCSxuVPFKO6wiLdAB7cA
    提取碼:mbb6 )

二、安裝過程

  1. 首先在VMware里創建一個名為master的虛擬機(在已經安裝完VMware的前提下)
  • 打開VMware點擊-----創建新的虛擬機彈出窗口選擇典型安裝即可----下一步:

  • 彈出以下窗口 選擇 稍后安裝操作系統----下一步:

  • 選擇需要安裝的操作系統----下一步:

  • 這里設置虛擬機的名字和要安裝的位置----下一步:

  • 設置磁盤容量----下一步:

  • 這里先不要點擊完成選擇自定義硬件

  • 這里指定自己ISO鏡像的位置----關閉

  • 點擊完成

  • 可以看到VMware下生成了一個名為master的虛擬機----點擊開啟此虛擬機。

現在虛擬機還不能使用,現在就相當於一個沒有安裝操作系統的空電腦,只有軀體沒有靈魂

  • 點開之后會一陣加載文件,等一會會出現下面界面:

  • 這里選擇繼續而不更新----摁回車

  • 這里是設置鍵盤默認就可以了----摁回車

  • 這里也是直接默認就可以了----摁回車

  • 這里是設置代理服務器的,不用填寫直接回車就可以了

  • 設置下載源

  • 選擇Done直接回車就可以了

  • 這里也是默認直接回車

  • 上一步回車之后會彈出一個對話框如下圖:----選擇Continue回車

  • 設置用戶名和主機名設置完之后選在Done進行下一步

  • 選擇安裝OpenSSH 服務

  • 直接選擇Done進行下一步

  • 安裝頁面

  • 更新包和重啟虛擬機,選擇完之后還要等一會

  • 經過漫長的等待出現下面界面直接按回車繼續執行

  • 出現下面界面摁回車就可以

  • 執行上一步的話會出現下面界面使用用戶密碼登錄

  • 使用用戶名登陸上去就說明這台虛擬機已經可以工作了

三、環境基礎配置

節點 IP地址 主機名
master 192.168.100.100 master
slave1 192.168.100.101 slave1
slave2 192.168.100.102 slave2

1.配置靜態IP、hosts文件、克隆虛擬機、更改主機名

在配置靜態IP之前要看一下VMware虛擬網卡的網段

  • 配置靜態IP
cd /etc/netplan
ls

  • 查看完配置文件,使用 vi 進入配置文件
sudo vi 00-installer-config.yaml

  • 進行配置

vi 編輯器剛進入的時候默認是命令模式,要按一下 i 進入編輯模式。如果編輯完成想要退出,首先先按一下Esc到命令模式然后輸如 :wq!
保存退出,如果不想保存退出就使用:q!命令。

  • 退出之后啟動網卡
sudo netplan apply 
ip a                       查看IP的命令

  • 配置hosts文件

hosts文件是本地域名解析,一個本地的DNS。它將IP地址和主機名相互解析

也是使用vi 編輯器進行編輯
vi  /etc/hosts

  • 克隆虛擬機

先關閉master虛擬機然后點擊虛擬機-----管理----克隆----下一步----下一步----選擇創建完全克隆----下一步----更改虛擬機名稱為slave1,位置自己選擇即可。點擊完成。即可看到VMware里多了一台名為slave1的虛擬機。slave2操作相同,就是虛擬機名稱改為slave2即可。創建完如下圖:

  • 配置slave1和slave2

注意此時slave1和slave2虛擬機是克隆的,所以說配置文件和master是完全相同的,登錄的話也是master的用戶和密碼(用戶:hadoop 密碼:你自己設置的)登錄上咱們要給他更改一下主機名和IP地址。打開slave1、slave2虛擬機進行以下操作:

對slave1虛擬機進行操作的命令,操作的時候會讓你輸入密碼
就輸入hadoop用戶的密碼

hostnamectl set-hostname slave1          這個命令是永久更改主機名
sudo login           執行完這個命令會讓你重新登錄以下直接hadoop用戶登錄

對slave2虛擬機進行相同操作

hostnamectl set-hostname slave2          注意這里是slave2
sudo login           

更改slave1的IP地址

vi /etc/netplan/00-installer-config.yaml
sudo netplan apply                          配置完啟動一下網絡服務
ip a                                        查看一下是否配置成功

  • 更改slave2的IP地址

操作跟slave1命令一樣,把 0 改成 2 保存退出即可,也要使用sudo netplan apply
命令啟動一下網絡服務。使用ip a查看一下是否配置成功

2.配置ssh免密登錄

ssh-keygen -t rsa    每台機器都要執行這個命令,一路回車就可以了
  • 執行完上面的命令,會發現用戶目錄下有一個.ssh的目錄,使用下面的命令查看一下
cd ~/.ssh/
ls 

現在在master節點touch一個名為authorized_keys的文件然后使用cat命令將master的公鑰追加到這個文件里。命令如下:

touch authorized_keys
cat id_rsa.pub >> authorized_keys

然后將slave1的公鑰使用scp命令復制到master節點上

scp ~/.ssh/id_rsa.pub hadoop@msater:~/

  • 可以看到master節點用戶命令下多了一個id_rsa_pub的文件

  • 同樣使用cat命令將slave1的公鑰追加到authorized_keys文件里

cat id_rsa_pub >> .ssh/authorized_keys
cat .ssh/authorized_keys

使用相同的命令將slave2的公鑰傳到master節點里並寫入authorized_keys文件里

scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:~/ 在slave2里執行

(這里說明一下執行完上面這個命令會把之前咱們傳的slave1的公鑰文件覆蓋掉,沒什么影響。在master節點里執行下面的命令)

cat id_rsa_pub >> .ssh/authorized_keys
cat .ssh/authorized_keys

然后使用scp命令將master節點里的authorized_keys文件分別上傳到slave1和slave2節點的.ssh/目錄下

scp /home/hadoop/.ssh/authorized_keys hadoop@slave1:~/.ssh/
scp /home/hadoop/.ssh/authorized_keys hadoop@slave2:~/.ssh/
  • 驗證ssh免密登錄
ssh slave1   遠程登錄slave1命令,如果想登錄其他節點,將slave1改成其他主機的主機名即可
exit       這個是退出命令

3.上傳並解壓JDK、Hadoop壓縮包

  • 使用Xftp軟件進行上傳

注意:使用Xftp之前要確保宿主機(就是自己的電腦)和虛擬機相互通信。

  • 點擊【連接】會出現下面界面

出現下面界面,咱們可以直接把左面電腦里的文件拖到右面的虛擬機里。當然虛擬機里的文件也可以直接拖到自己電腦里。

  • 將hadoop、jdk壓縮文件拖到虛擬機里

  • 也可以到master用戶目錄下查看

  • 解壓hadoop、jdk

sudo tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/    -C參數是指定解壓到哪個目錄下
sudo tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/
cd /usr/local/      到這個目錄下
ls    查看一下

  • 給這兩個權限,歸hadoop用戶所有
sudo chown -R hadoop hadoop-2.7.7/
sudo chown -R hadoop jdk1.8.0_251
ll    查看一下

4.添加環境變量

vi .bashrc        在這個文件最后添加如下內容,三台機器都需要添加。
source .bashrc     添加完成之后執行這個條命令,讓其生效。

  • 驗證一下是否添加成功
java -version

四、配置Hadoop文件

  • 首先進入存放Hadoop配置文件的目錄
cd /usr/local/hadoop-2.7.7/etc/hadoop/      進入此目錄
ls    查看一下

1.配置核心組件core-site.xml

vi core-site.xml    打開文件,添加以下內容

<property>
	<name>fs.defaultFS</name>
	<value>hdfs://192.168.100.100:9000</value>
</property>
<property>
	<name>hadoop.tmp.dir</name>
	<value>/home/hadoop/hadoopdata</value>
</property>

2.配置hadoop-env.sh

vi hadoop-env.sh   添加JDK的安裝目錄

export JAVA_HOME=/usr/local/jdk1.8.0_251

3.配置hdfs-site.xml

vi hdfs-site.xml

<property>
	<name>dfs.replication</name>
	<value>3</value>
</property>

4.配置yarn-site.xml

vi yarn-site.xml
	
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
<property>
	<name>yarn.resourcemanager.address</name>
	<value>192.168.100.100:18040</value>
</property>								        
<property>
	<name>yarn.resourcemanager.scheduler.address</name>
	<value>192.168.100.100:18030</value>
</property>
<property>
	<name>yarn.resourcemanager.resource-tracker.address</name>
	<value>192.168.100.100:18025</value>
</property>
<property>
	<name>yarn.resourcemanager.admin.address</name>
	<value>192.168.100.100:18141</value>
</property>
<property>
	<name>yarn.resourcemanager.webapp.address</name>
	<value>192.168.100.100:18088</value>
</property>


5.配置mapred-site.xml

使用cp命令復制mapred-site.xml.template文件為mapred-site.xml

cp mapred-site.xml.template  mapred-site.xml     使用cp命令進行復制

vi mapred-site.xml   添加以下內容

<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>

6.配置yarn-env.sh

vi yarn-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_251

五、復制文件

1.使用scp命令將hadoop、jdk文件復制到slave1和slave2節點上。

在master節點執行下面命令

sudo scp -r /usr/local/hadoop-2.7.7 hadoop@slave1:~/
sudo scp -r /usr/local/hadoop-2.7.7 hadoop@slave2:~/
sudo scp -r /usr/local/jdk1.8.0_251 hadoop@slave1:~/
sudo scp -r /usr/local/jdk1.8.0_251 hadoop@slave2:~/
此時已經將這兩個文件復制到slave1、slave2節點的用戶目錄下

2.移動文件

在slave1、slave2節點執行下面命令
sudo mv /home/hadoop/hadoop-2.7.7/ /usr/local/
sudo mv /home/hadoop/jdk1.8.0_251/ /usr/local/

source .bashrc    生效一下環境變量,每台節點都要執行。

六、啟動集群

1.在master節點格式化namenode

hdfs namenode -format       進行格式化

2.start-all.sh啟動集群

start-all.sh 

  • 查看slave1節點的進程

  • 查看slave2節點的進程

3.通過瀏覽器訪問UI 集群信息圖

4.通過瀏覽器訪問Yarn web 信息圖

至此Hadoop完全分布式搭建完成


免責聲明!

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



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