Hadoop集群搭建的詳細過程

Hadoop集群搭建

一、準備

  • 三台虛擬機:master01,node1,node2

  • 時間同步

    1.date命令查看三台虛擬機時間是否一致
    2.不一致時間同步:ntpdate ntp.aliyun.com
    
  • 調整時區

    cp  /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
    
  • 查看jdk

    java-version
    
  • 修改主機名

    三台分別執行vim /etc/hostname 修改為指定的主機名
    
  • 關閉防火牆

    systemctl stop firewalld
    
    • 查看防火牆狀態

      systemctl status firewalld
      
    • 取消防火牆自啟

      systemctl disable firewalld
      
  • 靜態ip設置

    手動編輯配置文件

    1、編輯網絡配置文件
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE=Ethernet
    BOOTPROTO=static
    HWADDR=00:0C:29:E2:B8:F2
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.137.150
    GATEWAY=192.168.137.2
    NETMASK=255.255.255.0
    DNS1=192.168.190.2
    DNS2=223.6.6.6
    
    需要修改:HWADDR(mac地址,centos7不需要手動指定mac地址)
    		IPADDR(根據自己的網段,自定義IP地址)
    		GATEWAY(根據自己的網段填寫對應的網關地址)
    		
    2、關閉NetworkManager,並取消開機自啟
    systemctl stop NetworkManager
    systemctl disable NetworkManager
    
    3、重啟網絡服務
    systemctl restart network
    
  • 配置免密登錄

    1、生成密鑰
    ssh-keygen -t rsa
    
    2、配置免密登錄
    ssh-copy-id master01
    ssh-copy-id node1
    ssh-copy-id nade2
    
    3、測試免密登錄
    ssh node1
    
  • 配置映射文件:/etc/hosts

    192.168.137.150 master01
    192.168.137.160 node1
    192.168.137.170 node2
    

二、搭建Hadoop集群

1、上傳安裝包並解壓

cd /usr/local/soft/
解壓:
tar -zxvf

2、配置環境變量

vim /etc/propfile

image-20220821153922159

重新加載環境變量
source /etc/profile

3、修改Hadoop配置文件

cd /usr/local/soft/hadoop-2.7.6/etc/hadoop
  • 配置hadoop-env.sh

    image-20220821155110781

  • 配置core-site.xml

    fs.defaultFS: 默認文件系統的名稱。其方案和權限決定文件系統實現的URI。uri的方案確定命名文件系統實現類的配置屬性(fs.scheme.impl)。uri的權限用於確定文件系統的主機、端口等。

    hadoop.tmp.dir:是 hadoop文件系統依賴的基本配置,很多配置路徑都依賴它,它的默認位置是在 /tmp/{$user}下面,注意這是個臨時目錄!!!

    因此,它的持久化配置很重要的! 如果選擇默認,一旦因為斷電等外在因素影響,/tmp/{$user}下的所有東西都會丟失。

    fs.trash.interval:啟用垃圾箱配置,dfs命令刪除的文件不會立即從HDFS中刪除。相反,HDFS將其移動到垃圾目錄(每個用戶在/user/<username>/.Trash下都有自己的垃圾目錄)。只要文件保留在垃圾箱中,文件可以快速恢復。

     <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master01:9000</value>
        </property>
    
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/usr/local/soft/hadoop-2.7.6/tmp</value>
        </property>
    
        <property>
            <name>fs.trash.interval</name>
            <value>1440</value>
        </property>
    

    image-20220821155614081

  • 配置hdfs-site.xml

    dfs.replication:每個datanode上只能存放一個副本。我這裡就2個datanode

    dfs.permissions:如果為「true」,則在HDFS中啟用權限檢查。如果為「false」,則關閉權限檢查,但所有其他行為保持不變。從一個參數值切換到另一個參數值不會更改文件或目錄的模式、所有者或組。

        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    
        <property>
            <name>dfs.permissions</name>
            <value>false</value>
        </property>
    

    image-20220821155913116

  • 配置mapred-site.xml.template

    mapreduce.framework.name:用於執行MapReduce作業的運行時框架。

    mapreduce.jobhistory.address:Hadoop自帶了一個歷史服務器,可以通過歷史服務器查看已經運行完的Mapreduce作業記錄,比如用了多少個Map、用了多少個Reduce、作業提交時間、作業啟動時間、作業完成時間等信息。默認情況下,Hadoop歷史服務器是沒有啟動的,我們可以通過*mr-jobhistory-daemon.sh start historyserver命令來啟動Hadoop歷史服務器。我們可以通過Hadoop jar的命令來實現我們的程序jar包的運行,關於運行的日誌,我們一般都需要通過啟動一個服務來進行查看,就是我們的JobHistoryServer,我們可以啟動一個進程,專門用於查看我們的任務提交的日誌。mapreduce.jobhistory.address和mapreduce.jobhistory.webapp.address默認的值分別是0.0.0.0:10020和0.0.0.0:19888

    1、複製:
    [root@master01 hadoop]# cp mapred-site.xml.template mapred-site.xml
    2、修改
    	<property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    
        <property>  
            <name>mapreduce.jobhistory.address</name>  
            <value>master01:10020</value>  
        </property>  
    
        <property>  
            <name>mapreduce.jobhistory.webapp.address</name>  
            <value>master01:19888</value>  
        </property> 
    
  • 配置yarn-site.xml

    ​ yarn.resourcemanager.hostname:指定yarn主節點

    ​ yarn.nodemanager.aux-services:NodeManager上運行的附屬服務。需配置成 mapreduce_shuffle,才可運行MapReduce程序。默認值:「」

    yarn.log-aggregation-enable:yarn日誌聚合功能開關

    yarn.log-aggregation.retain-seconds:日誌保留時限,默認7天

    <property>
              <name>yarn.resourcemanager.hostname</name>
              <value>master01</value>
          </property>
      
          <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
          </property>
      
          <property>
              <name>yarn.log-aggregation-enable</name>
              <value>true</value>
          </property>
      
          <property>
              <name>yarn.log-aggregation.retain-seconds</name>
              <value>604800</value>
          </property>
    
  • 配置slaves

    從節點的信息

    node1
    node2
    

4、分發Hadoop到node1、node2

cd /usr/local/soft/
scp -r hadoop-2.7.6/ node1:`pwd`
scp -r hadoop-2.7.6/ node2:`pwd`

5、格式化namenode(第一次啟動的時候需要執行,以及每次修改核心配置文件後都需要)

在主節點下進行格式化

hdfs namenode -format

image-20220821162657483

6、啟動Hadoop集群

start-all.sh

image-20220821163248277

7、查看master01、node1、node2上的進程

jps

image-20220821163507056

image-20220821163556398

image-20220821163609900

NameNode:接受客戶端的讀/寫服務,收集 DataNode 彙報的 Block 列表信息

DataNode:真實數據存儲的地方(block)

SecondaryNameNode:做持久化的時候用到

進程 master01(主) node1(從) node2(從)
NameNode
SecondaryNameNode
ResourceManager
DataNode
NodeManager

8、訪問HDFS的web界面

//192.168.137.150:50070

image-20220821164053819

9、訪問YARN的web界面

//192.168.137.150:8088

image-20220821164526063

10、配置windows映射,讓電腦可以下載hadoop上的文件

  • 首先到這個目錄c盤的這個目錄下。c盤文件不允許修改,點擊hosts的屬性,安全,編輯,給user用戶一個修改權限就可以修改了。

image-20220821170233371

添加:192.168.137.150 master01

​ 192.168.137.160 node1

​ 192.168.137.170 node2

image-20220821173138864

Tags: