日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【大数据】Hadoop环境搭建图文教程(VM安装教程+Linux环境下配置+搭建三节点的Hadoop集群)

發(fā)布時間:2023/12/20 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【大数据】Hadoop环境搭建图文教程(VM安装教程+Linux环境下配置+搭建三节点的Hadoop集群) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 大數(shù)據(jù)Hadoop環(huán)境搭建
    • 一、基本配置
    • 二、即將完成的任務
    • 三、實驗背景
    • 四、知識要點
      • 文檔說明:
      • VMware版本:
      • linux版本
      • 1. 三臺linux服務器的安裝
        • 1. 安裝VMware
        • 2. 通過Vmware安裝第一臺linux機器
        • 3. 為我們創(chuàng)建的linux虛擬機掛載操作系統(tǒng)
        • 4. 為我們的linux虛擬機設置網(wǎng)絡配置
        • 5. 克隆第一臺機器
        • 6. 更改克隆機器的IP地址
      • 2. 安裝大數(shù)據(jù)集群前的環(huán)境準備
        • 1. 三臺虛擬機關(guān)閉防火墻
        • 2. 三臺機器關(guān)閉selinux
        • 3. 三臺機器更改主機名
        • 4. 三臺機器做主機名與IP地址的映射
        • 5. 三臺機器時鐘同步
          • 第一種同步方式:通過網(wǎng)絡進行時鐘同步
          • 第二種同步方式:內(nèi)網(wǎng)某機器作為時鐘同步服務器
            • 第一步:三臺機器確定是否安裝了ntpd的服務
            • 第二步:node01啟動ntpd服務
            • 第三步:修改node01服務器配置
            • 第四步:配置node02與node03同步node01的時間
        • 6. 三臺機器添加普通用戶
        • 7. 三臺定義統(tǒng)一目錄
        • 8. 三臺機器hadoop用戶免密碼登錄
        • 9. 三臺機器關(guān)機重啟
        • 10. 三臺機器安裝jdk
      • 3. hadoop集群的安裝
        • 第一步:上傳壓縮包并解壓
        • 第二步:查看hadoop支持的壓縮方式以及本地庫
        • 第三步:修改配置文件
            • 修改hadoop-env.sh
            • 修改core-site.xml
            • 修改hdfs-site.xml
            • 修改mapred-site.xml
            • 修改yarn-site.xml
            • 修改workers文件
        • 第四步:創(chuàng)建文件存放目錄
          • 第五步:安裝包的分發(fā)scp與rsync
            • 1. 通過scp直接拷貝
            • 2. 通過rsync來實現(xiàn)增量拷貝
            • 3. 通過rsync來封裝分發(fā)腳本
        • 第六步:配置hadoop的環(huán)境變量
        • 第七步:格式化集群
        • 第八步:集群啟動
            • 1. 啟動HDFS、YARN、Historyserver
            • 2. 單個進程逐個啟動
            • 3. 一鍵啟動hadoop集群的腳本
        • 第九步:驗證集群是否搭建成功
            • 1. 訪問web ui界面
            • 2. 所有機器查看進程腳本
            • 3. 運行一個mr例子

大數(shù)據(jù)Hadoop環(huán)境搭建

一、基本配置

  • 準備一臺內(nèi)存最少8G(建議16G)、cpu i7 4核的電腦
  • 二、即將完成的任務

  • 安裝虛擬化軟件VMware

  • 準備3臺linux虛擬機

  • 搭建3節(jié)點的hadoop集群

    • 按《虛擬化與云計算(第3版)》課本描述,實際上可以只搭一主一從兩臺虛擬機即可
    • 筆者是因為大數(shù)據(jù)學習需求,會相對詳盡

    三、實驗背景

  • 筆者自己大數(shù)據(jù)學習需要搭建
  • 虛擬化與云計算這門課程也有實驗要求
  • 四、知識要點

    文檔說明:

    • 在學習大數(shù)據(jù)課程的全程中,要求大家統(tǒng)一保持跟老師一樣的操作系統(tǒng)、軟件版本、環(huán)境設置

    VMware版本:

    • VMware建議使用比較新的版本,如VMware 15.5
    • 關(guān)于VMware的安裝,直接使用安裝包一直下一步安裝即可,且安裝包當中附帶破解秘鑰,進行破解即可使用

    linux版本

    • linux統(tǒng)一使用centos7.6 64位版本

    • 種子文件下載地址:http://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.torrent

    • 具體實操過程請參考視頻

    1. 三臺linux服務器的安裝

    1. 安裝VMware

    • VMware虛擬機軟件是一個“虛擬PC”軟件,它使你可以在一臺機器上同時運行二個或更多Windows、DOS、LINUX系統(tǒng)。與“多啟動”系統(tǒng)相比,VMWare采用了完全不同的概念。
    • 我們可以通過VMware來安裝我們的linux虛擬機,然后通過linux虛擬機來進行集群的安裝,VMware的安裝雙擊之后,一路下一步即可,盡量不要裝在操作系統(tǒng)盤里面了,VMware的安裝步驟省略

    2. 通過Vmware安裝第一臺linux機器

    • 我們通過Vmware可以安裝第一臺我們的linux機器,接下來我們來看如何通過VMWare創(chuàng)建linux虛擬機,并給我們的虛擬機掛載操作系統(tǒng)

    1:雙擊Vmware打開之后,點擊創(chuàng)建新的虛擬機

    2:選擇自定義安裝配置

    3:選擇稍后安裝操作系統(tǒng)

    4:選擇稍后安裝操作系統(tǒng)

    5:選擇安裝路徑,盡量不要放在C盤,并且所在盤符的剩余空間盡量大些

    6:CPU核數(shù),默認即可

    7:虛擬機內(nèi)存根據(jù)自身windows電腦進行調(diào)整

    例如如果windows是8GB內(nèi)存,那么每臺虛擬機內(nèi)存給2048M內(nèi)存,如果windows是16GB沒存,那么每臺虛擬機可以給3072M內(nèi)存即可

    8:網(wǎng)絡配置一定要選擇NAT

    9:磁盤大小盡量給40GB

    注意:千萬不要勾選“立即分配所有磁盤空間”

    10:完成

    3. 為我們創(chuàng)建的linux虛擬機掛載操作系統(tǒng)

    • 我們現(xiàn)在已經(jīng)有了一臺虛擬電腦了,就類似我們剛剛買了一臺電腦回來,只不過不同的是我們這臺虛擬電腦還沒有操作系統(tǒng)我們需要為這臺電腦掛在操作系統(tǒng)出來

    1:通過設置來掛載操作系統(tǒng)

    2:直接回車開始安裝

    用鍵盤的方向鍵,選中“Install CentOS 7”,然后按回車,開始安裝

    再按回車鍵

    3:設置鍵盤為英文鍵盤

    4:接下來配置這三項

    (1)設置①時區(qū)為Asia/Shanghai

    (2)設置②INSTALATION DESTINATION

    (3)設置③NETWORK & HOST NAME

    5:設置root用戶密碼

    6:安裝完成之后重啟reboot即可

    此過程稍長,耐心等待

    4. 為我們的linux虛擬機設置網(wǎng)絡配置

    • 我們的linux虛擬機已經(jīng)創(chuàng)建并掛載好了操作系統(tǒng),接下來我們可以為我們的第一臺虛擬機來設置網(wǎng)絡地址了,設置網(wǎng)絡地址比較麻煩,盡量參見視頻進行一步步的操作

    1:設置虛擬機的網(wǎng)段

    2:查看NAT模式的網(wǎng)關(guān),子網(wǎng)IP以及子網(wǎng)掩碼

    3:設置window當中的VMNet8網(wǎng)絡地址

    4:設置linux當中的網(wǎng)絡

    • 我們已經(jīng)配置好了Vmware當中的網(wǎng)絡、windows當中的網(wǎng)絡;

    • 剩下就是配置linux虛擬機當中的網(wǎng)絡,配置好了linux當中的網(wǎng)絡,我們的linux就可以聯(lián)網(wǎng)使用了

    • 登錄linux

    編輯配置文件

    vi /etc/sysconfig/network-scripts/ifcfg-ens33

    添加聯(lián)網(wǎng)四要素

    IPADDR=192.168.51.100 NETMASK=255.255.255.0 GATEWAY=192.168.51.1 DNS1=8.8.8.8

    具體參考下圖

    更改完成配置,重啟網(wǎng)絡服務

    systemctl restart network

    安裝一些常用的軟件

    yum -y install vim yum -y install net-tools

    關(guān)機

    init 0

    5. 克隆第一臺機器

    • 現(xiàn)在我們已經(jīng)有了種子機器了,我們可以通過種子機器進行復制或者克隆出三臺機器
    • 關(guān)閉linux種子機器,然后準備進行克隆

    選擇創(chuàng)建完整克隆

    6. 更改克隆機器的IP地址

    • 三臺機器的ip地址分別是192.168.51.100、192.168.51.110、192.168.51.120

    • 克隆出來的機器IP地址與種子的ip地址一樣,我們將第二臺機器的IP地址更改為192.168.51.110即可

    • 啟動虛擬機,并通過root用戶,密碼123456來進行登錄,然后來更改linux機器的IP地址

    vi /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=192.168.51.110 NETMASK=255.255.255.0 GATEWAY=192.168.51.1 DNS1=8.8.8.8
    • 依照上面步驟,接著克隆第三臺機器,并將第三臺機器的IP地址設置為
      192.168.51.120

    建議:三臺機器準備好后,打個快照,便于出錯后恢復

    2. 安裝大數(shù)據(jù)集群前的環(huán)境準備

    1. 三臺虛擬機關(guān)閉防火墻

    三臺機器執(zhí)行以下命令(root用戶來執(zhí)行)

    systemctl stop firewalld systemctl disable firewalld

    2. 三臺機器關(guān)閉selinux

    三臺機器執(zhí)行以下命令關(guān)閉selinux

    vi /etc/sysconfig/selinux SELINUX=disabled

    3. 三臺機器更改主機名

    三臺機器執(zhí)行以下命令更改主機名

    vi /etc/hostname

    第一臺機器更改內(nèi)容

    node01.kaikeba.com

    第二臺機器更改內(nèi)容

    node02.kaikeba.com

    第三臺機器更改內(nèi)容

    node03.kaikeba.com

    4. 三臺機器做主機名與IP地址的映射

    三臺機器執(zhí)行以下命令更改主機名與IP地址的映射

    vi /etc/hosts 192.168.51.100 node01.kaikeba.com node01 192.168.51.110 node02.kaikeba.com node02 192.168.51.120 node03.kaikeba.com node03

    5. 三臺機器時鐘同步

    第一種同步方式:通過網(wǎng)絡進行時鐘同步

    通過網(wǎng)絡連接外網(wǎng)進行時鐘同步,必須保證虛擬機連上外網(wǎng)

    三臺機器都安裝ntpdate

    yum -y install ntpdate

    阿里云時鐘同步服務器

    ntpdate ntp4.aliyun.com

    三臺機器定時任務

    crontab -e

    添加如下內(nèi)容

    */1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
    第二種同步方式:內(nèi)網(wǎng)某機器作為時鐘同步服務器

    以下操作都在root用戶下面執(zhí)行,通過su root切換到root用戶

    以192.168.51.100這臺服務器的時間為準進行時鐘同步

    第一步:三臺機器確定是否安裝了ntpd的服務

    三臺機器確認是否安裝ntpdate時鐘同步工具

    rpm -qa | grep ntpdate

    如果沒有安裝,三臺機器執(zhí)行以下命令可以進行在線安裝

    yum -y install ntpdate

    安裝后如下圖

    node01安裝ntp

    yum -y install ntp

    三臺機器,執(zhí)行以下命令,設置時區(qū)為中國上海時區(qū)

    timedatectl set-timezone Asia/Shanghai
    第二步:node01啟動ntpd服務

    我們需要啟動node01的ntpd服務,作為服務端,對外提供同步時間的服務

    啟動ntpd的服務

    #啟動ntpd服務 systemctl start ntpd#設置ntpd服務開機啟動 systemctl enable ntpd
    第三步:修改node01服務器配置

    修改node01這臺服務器的時鐘同步配置,允許對外提供服務

    vim /etc/ntp.conf

    添加以下兩行內(nèi)容

    # 同意192.168.51.0網(wǎng)段(修改成自己的網(wǎng)段)的所有機器與node01同步時間 restrict 192.168.51.0 mask 255.255.255.0 nomodify notrap server 127.127.1.0

    注釋掉以下這四行內(nèi)容

    #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst

    修改完成之后,重啟node01的ntpd服務

    systemctl restart ntpd

    至此,ntpd的服務端已經(jīng)安裝配置完成,接下來配置客戶端與服務端進行同步

    第四步:配置node02與node03同步node01的時間

    客戶端node02與node03設置時區(qū)與node01保持一致Asia/Shanghai

    node02與node03修改配置文件,保證每次時間寫入硬件時鐘

    vim /etc/sysconfig/ntpdate SYNC_HWCLOCK=yes

    node02與node03修改定時任務,定時與node01同步時間

    [root@node03 hadoop]# crontab -e

    增加如下內(nèi)容

    */1 * * * * /usr/sbin/ntpdate node01

    6. 三臺機器添加普通用戶

    三臺linux服務器統(tǒng)一添加普通用戶hadoop,并給以sudo權(quán)限,用于以后所有的大數(shù)據(jù)軟件的安裝

    (目的是避免用root用戶不小心執(zhí)行了一些不可逆的操作)

    并統(tǒng)一設置普通用戶的密碼為 123456

    useradd hadoop passwd hadoop

    普通用戶的密碼設置為123456

    三臺機器為普通用戶添加sudo權(quán)限

    visudo

    增加如下內(nèi)容

    hadoop ALL=(ALL) ALL

    7. 三臺定義統(tǒng)一目錄

    定義三臺linux服務器軟件壓縮包存放目錄,以及解壓后安裝目錄,三臺機器執(zhí)行以下命令,創(chuàng)建兩個文件夾,一個用于存放軟件壓縮包目錄,一個用于存放解壓后目錄

    mkdir -p /kkb/soft # 軟件壓縮包存放目錄 mkdir -p /kkb/install # 軟件解壓后存放目錄 chown -R hadoop:hadoop /kkb # 將文件夾權(quán)限更改為hadoop用戶

    創(chuàng)建hadoop用戶之后,我們?nèi)_機器都通過hadoop用戶來進行操作,以后再也不需要使用root用戶來操作了

    三臺機器通過 su hadoop命令來切換到hadoop用戶

    su hadoop

    8. 三臺機器hadoop用戶免密碼登錄

    重啟下3個linux虛擬機,讓主機名生效

    第一步:三臺機器在hadoop用戶下執(zhí)行以下命令生成公鑰與私鑰

    ssh-keygen -t rsa

    執(zhí)行上述命令之后,按三次Enter鍵即可生成了

    第二步:三臺機器在hadoop用戶下,執(zhí)行命令拷貝公鑰到node01服務器

    ssh-copy-id node01

    第三步:node01服務器將公鑰拷貝給node02與node03

    node01在hadoop用戶下,執(zhí)行以下命令,將authorized_keys拷貝到node02與node03服務器

    cd /home/hadoop/.ssh/ scp authorized_keys node02:$PWD scp authorized_keys node03:$PWD

    第四步:驗證;從任意節(jié)點是否能免秘鑰登陸其他節(jié)點;如node01免密登陸node02

    ssh node02

    9. 三臺機器關(guān)機重啟

    三臺機器在hadoop用戶下執(zhí)行以下命令,實現(xiàn)關(guān)機重啟

    sudo reboot -h now

    10. 三臺機器安裝jdk

    • 使用hadoop用戶來重新連接三臺機器,然后使用hadoop用戶來安裝jdk軟件
    • 上傳壓縮包到第一臺服務器的/kkb/soft下面,然后進行解壓,配置環(huán)境變量即可,三臺機器都依次安裝即可
    cd /kkb/soft/ tar -xzvf jdk-8u141-linux-x64.tar.gz -C /kkb/install/ sudo vim /etc/profile #添加以下配置內(nèi)容,配置jdk環(huán)境變量 export JAVA_HOME=/kkb/install/jdk1.8.0_141 export PATH=$PATH:$JAVA_HOME/bin

    讓修改馬上生效

    source /etc/profile

    建議:三臺機器準備好后,打個快照,便于出錯后恢復

    3. hadoop集群的安裝

    • 安裝環(huán)境服務部署規(guī)劃
    服務器IPnode01node02node03
    HDFSNameNode
    HDFSSecondaryNameNode
    HDFSDataNodeDataNodeDataNode
    YARNResourceManager
    YARNNodeManagerNodeManagerNodeManager
    歷史日志服務器JobHistoryServer

    第一步:上傳壓縮包并解壓

    • 將我們重新編譯之后支持snappy壓縮的hadoop包上傳到第一臺服務器并解壓;第一臺機器執(zhí)行以下命令
    cd /kkb/soft/ tar -xzvf hadoop-3.1.4.tar.gz -C /kkb/install

    第二步:查看hadoop支持的壓縮方式以及本地庫

    第一臺機器執(zhí)行以下命令

    cd /kkb/install/hadoop-3.1.4/ bin/hadoop checknative

    如果出現(xiàn)openssl為false,那么所有機器在線安裝openssl即可,執(zhí)行以下命令,虛擬機聯(lián)網(wǎng)之后就可以在線進行安裝了

    sudo yum -y install openssl-devel

    第三步:修改配置文件

    下面是配置一些hadoop環(huán)境運行所需的一些文件,如果是實驗可跳過

    修改hadoop-env.sh

    第一臺機器執(zhí)行以下命令

    cd /kkb/install/hadoop-3.1.4/etc/hadoop/ vim hadoop-env.sh export JAVA_HOME=/kkb/install/jdk1.8.0_141
    修改core-site.xml

    第一臺機器執(zhí)行以下命令

    vim core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://node01:8020</value> </property><property><name>hadoop.tmp.dir</name><value>/kkb/install/hadoop-3.1.4/hadoopDatas/tempDatas</value> </property> <!-- 緩沖區(qū)大小,實際工作中根據(jù)服務器性能動態(tài)調(diào)整;默認值4096 --> <property> <name>io.file.buffer.size</name> <value>4096</value> </property> <!-- 開啟hdfs的垃圾桶機制,刪除掉的數(shù)據(jù)可以從垃圾桶中回收,單位分鐘;默認值0 --><property> <name>fs.trash.interval</name> <value>10080</value> </property></configuration>
    修改hdfs-site.xml

    第一臺機器執(zhí)行以下命令

    vim hdfs-site.xml <configuration><!-- NameNode存儲元數(shù)據(jù)信息的路徑,實際工作中,一般先確定磁盤的掛載目錄,然后多個目錄用,進行分割 --> <!-- 集群動態(tài)上下線 <property> <name>dfs.hosts</name> <value>/kkb/install/hadoop-3.1.4/etc/hadoop/accept_host</value> </property> <property> <name>dfs.hosts.exclude</name> <value>/kkb/install/hadoop-3.1.4/etc/hadoop/deny_host</value></property>--><property><name>dfs.namenode.secondary.http-address</name> <value>node01:9868</value> </property> <property><name>dfs.namenode.http-address</name> <value>node01:9870</value> </property><!-- namenode保存fsimage的路徑 --><property> <name>dfs.namenode.name.dir</name> <value>file:///kkb/install/hadoop-3.1.4/hadoopDatas/namenodeDatas</value> </property> <!-- 定義dataNode數(shù)據(jù)存儲的節(jié)點位置,實際工作中,一般先確定磁盤的掛載目錄,然后多個目錄用,進行分割 --><property> <name>dfs.datanode.data.dir</name> <value>file:///kkb/install/hadoop-3.1.4/hadoopDatas/datanodeDatas</value> </property><!-- namenode保存editslog的目錄 --><property> <name>dfs.namenode.edits.dir</name><value>file:///kkb/install/hadoop-3.1.4/hadoopDatas/dfs/nn/edits</value></property><!-- secondarynamenode保存待合并的fsimage --><property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///kkb/install/hadoop-3.1.4/hadoopDatas/dfs/snn/name</value> </property><!-- secondarynamenode保存待合并的editslog --><property><name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///kkb/install/hadoop-3.1.4/hadoopDatas/dfs/nn/snn/edits</value></property> <property><name>dfs.replication</name><value>3</value></property><property><name>dfs.permissions.enabled</name><value>false</value></property><property><name>dfs.blocksize</name><value>134217728</value></property> </configuration>
    修改mapred-site.xml

    第一臺機器執(zhí)行以下命令

    vim mapred-site.xml <configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.job.ubertask.enable</name><value>true</value></property><property><name>mapreduce.jobhistory.address</name><value>node01:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node01:19888</value></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property> </configuration>
    修改yarn-site.xml

    第一臺機器執(zhí)行以下命令

    vim yarn-site.xml <configuration><property><name>yarn.resourcemanager.hostname</name><value>node01</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property> </configuration>
    修改workers文件

    第一臺機器執(zhí)行以下命令

    vim workers

    原內(nèi)容替換為

    node01 node02 node03

    第四步:創(chuàng)建文件存放目錄

    第一臺機器執(zhí)行以下命令

    node01機器上面創(chuàng)建以下目錄

    mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/tempDatas mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/namenodeDatas mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/datanodeDatas mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/dfs/nn/edits mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/dfs/snn/name mkdir -p /kkb/install/hadoop-3.1.4/hadoopDatas/dfs/nn/snn/edits
    第五步:安裝包的分發(fā)scp與rsync

    在linux當中,用于向遠程服務器拷貝文件或者文件夾可以使用scp或者rsync,這兩個命令功能類似都是向遠程服務器進行拷貝,只不過scp是全量拷貝,rsync可以做到增量拷貝,rsync的效率比scp更高一些

    1. 通過scp直接拷貝

    scp(secure copy)安全拷貝

    可以通過scp進行不同服務器之間的文件或者文件夾的復制

    使用語法

    scp -r sourceFile username@host:destpath

    用法示例

    scp -r hadoop-lzo-0.4.20.jar hadoop@node01:/kkb/

    node01執(zhí)行以下命令進行拷貝

    cd /kkb/install/ scp -r hadoop-3.1.4/ node02:$PWD scp -r hadoop-3.1.4/ node03:$PWD
    2. 通過rsync來實現(xiàn)增量拷貝

    rsync 遠程同步工具

    rsync主要用于備份和鏡像。具有速度快、避免復制相同內(nèi)容和支持符號鏈接的優(yōu)點。

    rsync和scp區(qū)別:用rsync做文件的復制要比scp的速度快,rsync只對差異文件做更新。scp是把所有文件都復制過去。

    三臺機器執(zhí)行以下命令安裝rsync工具

    sudo yum -y install rsync

    (1) 基本語法

    node01執(zhí)行以下命令同步zk安裝包

    rsync -av /kkb/soft/apache-zookeeper-3.6.2-bin.tar.gz node02:/kkb/soft/

    命令 選項參數(shù) 要拷貝的文件路徑/名稱 目的用戶@主機:目的路徑/名稱

    選項參數(shù)說明

    選項功能
    -a歸檔拷貝
    -v顯示復制過程

    (2)案例實操

    (3)把node01機器上的/kkb/soft目錄同步到node02服務器的hadooop用戶下的/kkb/目錄

    rsync -av /kkb/soft node02:/kkb/soft
    3. 通過rsync來封裝分發(fā)腳本

    我們可以通過rsync這個命令工具來實現(xiàn)腳本的分發(fā),可以增量的將文件分發(fā)到我們所有其他的機器上面去

    (1)需求:循環(huán)復制文件到所有節(jié)點的相同目錄下

    (2)需求分析:

    (a)rsync命令原始拷貝:

    rsync -av /kkb/soft hadoop@node02:/kkb/soft

    (b)期望腳本使用方式:

    xsync要同步的文件名稱

    (c)說明:在/home/hadoop/bin這個目錄下存放的腳本,hadoop用戶可以在系統(tǒng)任何地方直接執(zhí)行。

    (3)腳本實現(xiàn)

    (a)在/home/hadoop目錄下創(chuàng)建bin目錄,并在bin目錄下xsync創(chuàng)建文件,文件內(nèi)容如下:

    [hadoop@node01 ~]$ cd ~ [hadoop@node01 ~]$ mkdir bin [hadoop@node01 bin]$ cd /home/hadoop/bin [hadoop@node01 ~]$ touch xsync [hadoop@node01 ~]$ vim xsync

    在該文件中編寫如下代碼

    #!/bin/bash #1 獲取輸入?yún)?shù)個數(shù),如果沒有參數(shù),直接退出 pcount=$# if ((pcount==0)); then echo no args; exit; fi#2 獲取文件名稱 p1=$1 fname=`basename $p1`echo $fname#3 獲取上級目錄到絕對路徑 pdir=`cd -P $(dirname $p1); pwd` echo $pdir#4 獲取當前用戶名稱 user=`whoami`#5 循環(huán) for((host=1; host<4; host++)); doecho ------------------- node0$host --------------rsync -av $pdir/$fname $user@node0$host:$pdir done

    (b)修改腳本 xsync 具有執(zhí)行權(quán)限

    [hadoop@node01 bin]$ cd ~/bin/[hadoop@node01 bin]$ chmod 777 xsync

    (c)調(diào)用腳本形式:xsync 文件名稱

    [hadoop@node01 bin]$ xsync /home/hadoop/bin/

    注意:如果將xsync放到/home/hadoop/bin目錄下仍然不能實現(xiàn)全局使用,可以將xsync移動到/usr/local/bin目錄下

    第六步:配置hadoop的環(huán)境變量

    三臺機器都要進行配置hadoop的環(huán)境變量

    三臺機器執(zhí)行以下命令

    sudo vim /etc/profile export HADOOP_HOME=/kkb/install/hadoop-3.1.4 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    配置完成之后生效

    source /etc/profile

    第七步:格式化集群

    • 要啟動 Hadoop 集群,需要啟動 HDFS 和 YARN 兩個集群。

    • 注意:首次啟動HDFS時,必須對其進行格式化操作。本質(zhì)上是一些清理和準備工作,因為此時的 HDFS 在物理上還是不存在的。格式化操作只有在首次啟動的時候需要,以后再也不需要了

    • node01執(zhí)行一遍即可

    hdfs namenode -format
    • 或者
    hadoop namenode –format
    • 下圖高亮表示格式化成功;

    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-4pcqb4hg-1621041358677)(assets/image-20201019211525368.png)]

    第八步:集群啟動

    • 啟動集群有兩種方式:

    • ①腳本一鍵啟動;

    • ②單個進程逐個啟動

    1. 啟動HDFS、YARN、Historyserver
    • 如果配置了 etc/hadoop/workers 和 ssh 免密登錄,則可以使用程序腳本啟動所有Hadoop 兩個集群的相關(guān)進程,在主節(jié)點所設定的機器上執(zhí)行。

    • 啟動集群

    • 主節(jié)點node01節(jié)點上執(zhí)行以下命令

    start-dfs.sh start-yarn.sh # 已過時mr-jobhistory-daemon.sh start historyserver mapred --daemon start historyserver
    • 停止集群(主節(jié)點node01節(jié)點上執(zhí)行):
    stop-dfs.sh stop-yarn.sh # 已過時 mr-jobhistory-daemon.sh stop historyserver mapred --daemon stop historyserver
    2. 單個進程逐個啟動
    # 在主節(jié)點上使用以下命令啟動 HDFS NameNode: # 已過時 hadoop-daemon.sh start namenode hdfs --daemon start namenode# 在主節(jié)點上使用以下命令啟動 HDFS SecondaryNamenode: # 已過時 hadoop-daemon.sh start secondarynamenode hdfs --daemon start secondarynamenode# 在每個從節(jié)點上使用以下命令啟動 HDFS DataNode: # 已過時 hadoop-daemon.sh start datanode hdfs --daemon start datanode# 在主節(jié)點上使用以下命令啟動 YARN ResourceManager: # 已過時 yarn-daemon.sh start resourcemanager yarn --daemon start resourcemanager# 在每個從節(jié)點上使用以下命令啟動 YARN nodemanager: # 已過時 yarn-daemon.sh start nodemanager yarn --daemon start nodemanager以上腳本位于$HADOOP_HOME/sbin/目錄下。如果想要停止某個節(jié)點上某個角色,只需要把命令中的start 改為stop 即可。
    3. 一鍵啟動hadoop集群的腳本
    • 為了便于一鍵啟動hadoop集群,我們可以編寫shell腳本
    • 在node01服務器的/home/hadoop/bin目錄下創(chuàng)建腳本
    [hadoop@node01 bin]$ cd /home/hadoop/bin/ [hadoop@node01 bin]$ vim hadoop.sh
    • 內(nèi)容如下
    #!/bin/bash case $1 in "start" ){source /etc/profile;/kkb/install/hadoop-3.1.4/sbin/start-dfs.sh/kkb/install/hadoop-3.1.4/sbin/start-yarn.sh/kkb/install/hadoop-3.1.4/sbin/mr-jobhistory-daemon.sh start historyserver};; "stop"){/kkb/install/hadoop-3.1.4/sbin/stop-dfs.sh/kkb/install/hadoop-3.1.4/sbin/stop-yarn.sh/kkb/install/hadoop-3.1.4/sbin/mr-jobhistory-daemon.sh stop historyserver };; esac
    • 修改腳本權(quán)限
    [hadoop@node01 bin]$ chmod 777 hadoop.sh [hadoop@node01 bin]$ ./hadoop.sh start # 啟動hadoop集群 [hadoop@node01 bin]$ ./hadoop.sh stop # 停止hadoop集群

    第九步:驗證集群是否搭建成功

    1. 訪問web ui界面
    • hdfs集群訪問地址

    http://192.168.51.100:9870/

    • yarn集群訪問地址

    http://192.168.51.100:8088

    • jobhistory訪問地址:

    http://192.168.51.100:19888

    • 若將linux的/etc/hosts文件的如下內(nèi)容,添加到本機的hosts文件中(ip地址根據(jù)自己的實際情況進行修改)
    192.168.51.100 node01.kaikeba.com node01 192.168.51.110 node02.kaikeba.com node02 192.168.51.120 node03.kaikeba.com node03
    • windows的hosts文件路徑是C:\Windows\System32\drivers\etc\hosts

    • mac的hosts文件是/etc/hosts

    • 那么,上邊的web ui界面訪問地址可以分別寫程

    • hdfs集群訪問地址
      http://node01:9870/

    • yarn集群訪問地址
      http://node01:8088

    • jobhistory訪問地址:
      http://node01:19888

    2. 所有機器查看進程腳本
    • 我們也可以通過jps在每臺機器上面查看進程名稱,為了方便我們以后查看進程,我們可以通過腳本一鍵查看所有機器的進程
    • 在node01服務器的/home/hadoop/bin目錄下創(chuàng)建文件xcall
    [hadoop@node01 bin]$ cd ~/bin/ [hadoop@node01 bin]$ vim xcall
    • 添加以下內(nèi)容
    #!/bin/bashparams=$@ for (( i=1 ; i <= 3 ; i = $i + 1 )) ; doecho ============= node0$i $params =============ssh node0$i "source /etc/profile;$params" done
    • 然后一鍵查看進程并分發(fā)該腳本
    chmod 777 /home/hadoop/bin/xcall xsync /home/hadoop/bin/
    • 各節(jié)點應該啟動的hadoop進程如下圖
    xcall jps

    3. 運行一個mr例子
    • 任一節(jié)點運行pi例子
    [hadoop@node01 ~]$ hadoop jar /kkb/install/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar pi 5 5
    • 最后計算出pi的近似值

    提醒:如果要關(guān)閉電腦時,清一定要按照以下順序操作,否則集群可能會出問題

    • 關(guān)閉hadoop集群

    • 關(guān)閉虛擬機

    • 關(guān)閉電腦

    總結(jié)

    以上是生活随笔為你收集整理的【大数据】Hadoop环境搭建图文教程(VM安装教程+Linux环境下配置+搭建三节点的Hadoop集群)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。