VMware + Ubuntu18.04 搭建Hadoop集群環境的圖文教程


https://www.jb51.net/article/209042.htm

0.VMware克隆虛擬機(准備工作,克隆3台虛擬機,一台master,兩台node)

  1. 先在虛擬機中關閉系統
  2. 右鍵虛擬機,點擊管理,選擇克隆

在這里插入圖片描述

        3.點擊下一步,選擇完整克隆,選擇路徑即可

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

注:以上步驟是模擬了三台計算機

1.創建Hadoop用戶(在master,node1,node2執行)

順序執行以下命令即可

1.創建hadoop用戶

sudo useradd -m hadoop -s /bin/bash

設置用戶密碼(輸入兩次)

sudo passwd hadoop

添加權限

sudo adduser hadoop sudo
 

切換到hadoop用戶(這里要輸入剛剛設置的hadoop密碼)

su hadoop

運行截圖展示(以master虛擬機為例)

 

 

 

2.更新apt下載源(在master,node1,node2執行)

sudo apt-get update

截圖展示(以master為例)

 

 

 

3. 安裝SSH、配置SSH免密登錄 (在master,node1,node2執行)

1.安裝SSH

sudo apt-get install openssh-server

2.配置SSH免密登錄

ssh localhost
exit 
cd ~/.ssh/ 
ssh-keygen -t rsa #一直按回車
cat ./id_rsa.pub >> ./authorized_keys

3.驗證免密

ssh localhost
exit 
cd ~/.ssh/ 
ssh-keygen -t rsa #一直按回車
cat ./id_rsa.pub >> ./authorized_keys

截圖展示(以master為例)

 

 

 

 

4.安裝Java環境 (在master,node1,node2執行)

1.下載 JDK 環境包

sudo apt-get install default-jre default-jdk

2.配置環境變量文件

vim ~/.bashrc

3.在文件首行加入

export JAVA_HOME=/usr/lib/jvm/default-java

4.讓環境變量生效

source ~/.bashrc

5.驗證

java -version

截圖展示(以master為例)

 

 

 

5.修改主機名(在master,node1,node2執行)

1.將文件中原有的主機名刪除,master中寫入master,node1中寫入node1,node2…(同理)

sudo vim /etc/hostname

重啟三個服務器

reboot

 

重啟成功后,再次連接會話,發現主機名改變了

截圖展示(以node1為例)

 

 

 

6.修改IP映射(在master,node1,node2執行)

查看各個虛擬機的ip地址

ifconfig -a

 

如果有報錯,則下載 net-tools ,然后再運行即可看到

sudo apt install net-tools

 

如下圖,紅色方框內的就是 本台虛擬機的 ip 地址

 

 

 3台虛擬機中都需要在 hosts 文件中加入對方的ip地址

sudo vim /etc/hosts

以master為例截圖展示

 

 

 

7.SSH免密登錄其他節點(在master上執行)

在Master上執行

cd ~/.ssh 
rm ./id_rsa*  # 刪除之前生成的公匙(如果有)
ssh-keygen -t rsa # 一直按回車就可以
cat ./id_rsa.pub >> ./authorized_keys
scp ~/.ssh/id_rsa.pub hadoop@node1:/home/hadoop/
scp ~/.ssh/id_rsa.pub hadoop@node2:/home/hadoop/

 

 

 在node1,node2都執行

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub # 用完就刪掉

 

 

 驗證免密登錄

ssh node1
exit
ssh node2
exit

以master為例截圖展示

 

 

 

8.安裝hadoop3.2.3(在master中執行)

有些鏡像的下載網址失效了,這里貼出官網的下載地址。

下載網址:https://www.apache.org/dyn/closer.cgi/hadoop/common/

注:官網下載速度比較慢,通過清華鏡像下載的

https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.3/

下載好,之后通過VMware-Tools上傳到master的/home/hadoop中

注:通過設置共享盤解決上傳路徑的問題

 

 

 

 

 

 下載好,之后通過VMware-Tools上傳到master的/home/hadoop中

解壓

cd /home/hadoop
sudo tar -zxf hadoop-3.2.3.tar.gz -C /usr/local #解壓
cd /usr/local/
sudo mv ./hadoop-3.2.3/ ./hadoop  # 將文件夾名改為hadoop
sudo chown -R hadoop ./hadoop # 修改文件權限

驗證

cd /usr/local/hadoop
./bin/hadoop version

 

 

 

9.配置hadoop環境(這一步需要很仔細)

配置環境變量

vim ~/.bashrc

 

在首行中寫入

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

 

使得配置生效

source ~/.bashrc

 

創建文件目錄(為后面的xml做准備)

cd /usr/local/hadoop
mkdir dfs
cd dfs
mkdir name data tmp
cd /usr/local/hadoop
mkdir tmp

 

配置hadoop的java環境變量

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
vim $HADOOP_HOME/etc/hadoop/yarn-env.sh

 

 

兩個的首行都寫入

export JAVA_HOME=/usr/lib/jvm/default-java

 

(master中)配置nodes

cd /usr/local/hadoop/etc/hadoop

 

刪除掉原有的localhost,因為我們有2個node,就把這2個的名字寫入

vim workers
node1
node2

 

 

配置 core-site.xml

vim core-site.xml

 

因為我們只有一個namenode,所以用fs.default.name,不采用fs.defalutFs

其次確保/usr/local/hadoop/tmp這個目錄存在

<configuration>
 <property>
 <name>fs.default.name</name>
 <value>hdfs://Master:9000</value>
 </property>
 
 <property>
 <name>hadoop.tmp.dir</name>
 <value>/usr/local/hadoop/tmp</value>
 </property>
</configuration>

 

配置 hdfs-site.xml

vim hdfs-site.xml

 

dfs.namenode.secondary.http-address確保端口不要和core-site.xml中端口一致導致占用

確保/usr/local/hadoop/dfs/name :/usr/local/hadoop/dfs/data 存在

因為我們只有2個node,所以dfs.replication設置為2

<configuration>
 <property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>Master:9001</value>
 </property>
 
 <property>
 <name>dfs.namenode.name.dir</name>
 <value>file:/usr/local/hadoop/dfs/name</value>
 </property>
 
 <property>
 <name>dfs.datanode.data.dir</name>
 <value>file:/usr/local/hadoop/dfs/data</value>
 </property>
 
 <property>
 <name>dfs.replication</name>
 <value>2</value>
 </property>
</configuration>

 

 

配置mapred-site.xml

vim mapred-site.xml
<configuration>
 <property> 
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>
</configuration>

 

 

配置 yarn-site.xml

vim yarn-site.xml
<configuration>
 <property>
 <name>yarn.resourcemanager.hostname</name>
 <value>Master</value>
 </property>
 
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value> 
 </property>
 
 <property>
 <name>yarn.nodemanager.vmem-check-enabled</name>
 <value>false</value>
 </property>
</configuration>

 

 

將hadoop壓縮

cd /usr/local
tar -zcf ~/hadoop.master.tar.gz ./hadoop #壓縮
cd ~

 

復制到node1中

scp ./hadoop.master.tar.gz node1:/home/hadoop

 

復制到node2中

scp ./hadoop.master.tar.gz node2:/home/hadoop

 

在node1、node2上執行
解壓

sudo rm -r /usr/local/hadoop # 刪掉舊的(如果存在)
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local #解壓
sudo chown -R hadoop /usr/local/hadoop #修改權限

 

首次啟動需要先在 Master 節點執行 NameNode 的格式化,之后不需要

hdfs namenode -format 

 

(注意:如果需要重新格式化 NameNode ,才需要先將原來 NameNode 和 DataNode 下的文件全部刪除!!!!!!!!!)

#看上面的文字,不要直接復制了
rm -rf $HADOOP_HOME/dfs/data/*
rm -rf $HADOOP_HOME/dfs/name/*

 



10.啟動 (在master上執行)

start-all.sh
mr-jobhistory-daemon.sh start historyserver

 

master中,出現Warning不影響

jps

 

運行截圖展示

 

 

11.關閉hadoop集群(在master上執行)

stop-all.sh
mr-jobhistory-daemon.sh stop historyserver

運行截圖展示

 

 

注:搭建過程中遇到的兩個小問題

1.ubuntu 解決“無法獲得鎖 /var/lib/dpkg/lock -open (11:資源暫時不可用)”的方法

在ubuntu系統的termial下,用apt-get install 安裝軟件的時候,如果在未完成下載的情況下將terminal close。此時 apt-get進程可能沒有結束。結果,如果再次運行apt-get install 命令安裝如今,可能會發生下面的提示:
    無法獲得鎖 /var/lib/dpkg/lock - open (11: 資源暫時不可用)
    無法鎖定管理目錄(/var/lib/dpkg/),是否有其他進程正占用它?

強制解鎖,命令

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

2.yum install 沒有已啟用的倉庫

 

 ubuntu默認軟件包管理器不是yum,而是dpkg,安裝軟件時用apt-get你說的網上常見法解決方法,命令改為代碼:sudo apt-get install net-tools,這樣就安裝好了。

3.VMware中Ubuntu18配置靜態IP地址

https://www.shuzhiduo.com/A/KE5QN2aMdL/

1. VMware:編輯 -> 虛擬網絡編輯器 -> 更改設置

2. 取消選中:使用本地DHCP服務將IP地址分配給虛擬機,並記住子網ip

3. 點擊NAT設置,記住網關地址

正常情況下VMware的網關IP是以 192.168.x.2結尾的,因為 x.1是綁定在物理機的虛擬網卡上的,而 x.2是用於轉發數據的

4. 記住網卡名稱

  1. ifconfig

5. 配置靜態IP

注意:Ubuntu18固定IP的方式跟Ubuntu18之前版本的的配置方式不同,Ubuntu18之前在/etc/network/interfaces進行配置,Ubuntu18及之后版本在/etc/netplan/*.yaml進行配置,如/etc/netplan/01-network-manager-all.yaml,如果/etc/netplan目錄下沒有yml文件,則可以新建一個

  1. sudo vim /etc/netplan/01-network-manager-all.yaml

修改成以下形式:

  1. # Let NetworkManager manage all devices on this system
  2. network:
  3. version: 2
  4. renderer: NetworkManager
  5. ethernets:
  6. ens33: # 網卡名稱
  7. dhcp4: no
  8. dhcp6: no
  9. addresses: [192.168.100.101/24] # 本機ip及掩碼,最后一段不要取1或2
  10. gateway4: 192.168.100.2 # 前面記錄的網關地址
  11. nameservers:
  12. addresses: [192.168.100.2] # DNS跟隨網關地址一致,也可以改別的,如[114.114.114.114,8.8.8.8]

6. 應用更改

  1. sudo netplan apply

7. 查看是否配置成功

  1. ifconfig
  2. ping www.baidu.com

 

4.Ubuntu18.04修改IP地址的方法(error in network definition ......is missing /prefixlength)

https://blog.csdn.net/m0_37052320/article/details/100107557

 

 

5.找不到或無法加載主類

 

解決方法:

在命令行下輸入​​hadoop classpath​​,復制返回的內容,然后在​​yarn-site.xml(/opt/module/hadoop-3.1.3/etc/hadoop)的<configuration>下​​加上

<property>
<name>yarn.application.classpath</name>
<value>輸入剛才返回的Hadoop classpath路徑</value>
</property>

運行成功

 

 查看運行結果

 


免責聲明!

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



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