CentOS 7搭建hadoop環境【成功!一步到位】

Chaim16發表於2020-11-20

CentOS 7搭建hadoop環境

尋找網上的部落格教程,折騰了許久,出一篇自己成功搭建hadoop環境的文章,用來記錄自己的探索,同時為大傢伙少走彎路提供捷徑

一、在虛擬機器中安裝CentOS 7並克隆兩臺機子

至此機器準備完成


二、檢視ip地址

請檢視:CentOS7 入贅虛擬機器後,如何檢視 ip 地址?

三、修改靜態ip地址

在VM中選單欄裡,編輯->虛擬網路編輯器(用於檢視子網ip以及子網掩碼)

進入虛擬機器,輸入命令

cd /etc/sysconfig/network-scripts

編輯網路配置

vi ifcfg-ens33

作如下修改:

按esc鍵,輸入:wq,儲存退出

記住:三臺都需要設定

設定完成了之後可以相互ping一下ip

ping有什麼作用? 可以驗證兩臺機子之間是否可以通訊

如下圖所示:

我用第一臺機子ping克隆的一臺機子(192.168.112.137)

出現如下圖所示就代表可以通訊

如果不成功則會出現以下情形:


四、修改主機名

為什麼要修改主機名,主機名可以代替ip地址,在我們進行計算機之間的通訊的時候可以直接使用主機名,而不用去寫ip

為每臺機子設定主機名:hostnamectl set-hostname 你想設定的主機名稱

在原來的機子上面修改配置檔案:vi /etc/hosts

為每臺機子都這樣設定:

使用scp命令傳送配置檔案hosts到對應的機子上面:

scp /etc/hosts 目的機使用者名稱@目的機名稱:/etc/hosts

例如我的機子就該這樣:

scp /etc/hosts root@chone1:/etc/hosts

對克隆的其他計算機都要傳送hosts檔案

完成之後,那麼可以ping 計算機名稱了

例如:

成功!

記住三臺機子都互相測試一下喲


五、裝java環境

有兩種方式:自己從官網下載jdk,傳到linux計算機,在進行解壓安裝等

那麼我採用直接使用linux的yum命令安裝,因為方便、快捷、省事兒

linux用yum命令下東西的時候速度非常慢,就是因為linux中centos7是預設國外源的,所以我們需要換成國內的源,這裡推薦使用阿里源

以下是更換yum成阿里源的操作步驟:

  1. 看看自己有沒有安裝wget yum list wget

  1. 如果沒有安裝,現場安裝:yum -y install wget
  2. 備份映象源(放置更換過程中出錯):mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  3. 從網路上下載yum源配置檔案:sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  4. 清理後生成快取
yum clean all
yum makecache

到此成功更換yum的源為阿里雲

從源中搜尋可安裝jdk

yum search jdk

安裝jdk1.8.0

yum install java-1.8.0-openjdk.x86_64

當然也可以安裝其他版本的,1.8比較穩定

安裝好了之後環境變數也自動配置好了

可以使用java -version來測試

到此成功安裝jdk


六、配置SSH免密碼登入

有什麼作用?當用一臺計算機使用者登入另一臺計算機時,每次登入都必須輸入密碼,在hadoop中,需要成千上萬次登入,那麼如果每次都需要輸入密碼的話,速度太慢了,而且折磨人

  1. 進入.ssh目錄:cd ~/.ssh

  2. 生成ssh祕鑰:ssh-keygen -t rsa 一直回車,三臺計算機都要這樣生成祕鑰

  3. 到此生成了兩個檔案:

    id_rsa和id_rsa.pub

    在第一臺計算機上執行:cp id_rsa.pub authorized_keys
    生成副本

    修改檔案許可權:

    chmod authorized_keys
    
  4. 測試一下本機無密碼登入

    sudo service sshd restart
    ssh master
    

    以下情況則代表登入成功:

  5. 測試第一臺計算機與其他計算機無密碼登入

向其他計算機傳送祕鑰:

scp /root/.ssh/authorized_keys 目的機使用者名稱@目的機名稱:/root/.ssh
  1. 測試能否無密碼登入其他計算機

ok,到此成功配置SSH免密碼登入


七、安裝hadoop

手動下載hadoop官方壓縮包:http://hadoop.apache.org/releases.html

挑選一個版本,下載二進位制檔案

這兒我下載的2.9.2版本

使用一個Windows客戶端軟體,點選下載:WinSCP(可將Windows上的檔案傳輸到linux)

上傳後解壓,將解壓資料夾移動到/opt/hadoop

tar -zxvf hadoop-2.9.2.tar.gz
mv hadoop-2.9.2 /opt/hadoop

進入/opt/hadoop/hadoop2.9.2/etc/hadoop/目錄

cd /opt/hadoop/hadoop2.7.4/etc/hadoop/

檢視該目錄下的檔案

編輯hadoop.enc.sh和yarn.env.sh

將JAVA_HOME配置好,如何檢視yum命令安裝的jdk路徑?


八、配置檔案

進入到/opt/hadoop/hadoop2.9.4/etc/hadoop/目錄

cd /opt/hadoop/hadoop2.7.4/etc/hadoop/

檢視目錄下所有檔案:

注:mapred-site.xml原本是不存在的,由mapred-site.cml.template複製而來

往檔案的標籤記憶體放這些屬性:

core-site.xml

  <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
  </property>
  <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/tmp</value>
  </property>

效果如下:

hdfs-site.xml

      <property>
        <name>dfs.replication</name>
        <value>2</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/hadoop/dfs/name</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/hadoop/dfs/data</value>
      </property>

mapred-site.xml

  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>Master:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>Master:19888</value>
  </property>

yarn-site.xml

   <!-- Site specific YARN configuration properties -->
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
      </property>
      <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
      </property>
      <property>
    <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
      </property>
      <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
      </property>
      <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
      </property>
      <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
      </property>

編輯slaves檔案,在裡面新增克隆計算機的名字

例如:

利用scp將配置好的hadoop傳送到各個計算機

scp -r /opt/hadoop 目的機使用者名稱@目的機名稱:/opt/hadoop

若發現許可權不夠,可以先傳送到計算機的其他位置,再移動到/opt/hadoop資料夾下


九、叢集群起

在第一臺計算機上初始化(如果已經初始化一次,那麼以後就儘量不要初始化)

bin/hdfs namenode -format

關閉防火牆:

systemctl stop firewalld.service

群起:

sbin/start-all.sh

此時可用jps命令檢視是否已經啟動


十、檢驗

在Windows宿主機上,開啟瀏覽器,輸入

http://你的第一臺計算機名或者ip:8088

比如我的可以輸入:

http://192.168.112.136:8088
或者
http://master:8088

出現如下介面:

如果許久沒有出現這個介面,檢查一下第一臺計算機的防火牆是不是沒關

service firewalld status

在位址列輸入時,將埠號改成50070,出現:

hadoop環境搭建成功!

CentOS 7搭建hadoop環境

尋找網上的部落格教程,折騰了許久,出一篇自己成功搭建hadoop環境的文章,用來記錄自己的探索,同時為大傢伙少走彎路提供捷徑

一、在虛擬機器中安裝CentOS 7並克隆兩臺機子

至此機器準備完成


二、檢視ip地址

請檢視:CentOS7 入贅虛擬機器後,如何檢視 ip 地址?

三、修改靜態ip地址

在VM中選單欄裡,編輯->虛擬網路編輯器(用於檢視子網ip以及子網掩碼)

進入虛擬機器,輸入命令

cd /etc/sysconfig/network-scripts

編輯網路配置

vi ifcfg-ens33

作如下修改:

按esc鍵,輸入:wq,儲存退出

記住:三臺都需要設定

設定完成了之後可以相互ping一下ip

ping有什麼作用? 可以驗證兩臺機子之間是否可以通訊

如下圖所示:

我用第一臺機子ping克隆的一臺機子(192.168.112.137)

出現如下圖所示就代表可以通訊

如果不成功則會出現以下情形:


四、修改主機名

為什麼要修改主機名,主機名可以代替ip地址,在我們進行計算機之間的通訊的時候可以直接使用主機名,而不用去寫ip

為每臺機子設定主機名:hostnamectl set-hostname 你想設定的主機名稱

在原來的機子上面修改配置檔案:vi /etc/hosts

為每臺機子都這樣設定:

使用scp命令傳送配置檔案hosts到對應的機子上面:

scp /etc/hosts 目的機使用者名稱@目的機名稱:/etc/hosts

例如我的機子就該這樣:

scp /etc/hosts root@chone1:/etc/hosts

對克隆的其他計算機都要傳送hosts檔案

完成之後,那麼可以ping 計算機名稱了

例如:

成功!

記住三臺機子都互相測試一下喲


五、裝java環境

有兩種方式:自己從官網下載jdk,傳到linux計算機,在進行解壓安裝等

那麼我採用直接使用linux的yum命令安裝,因為方便、快捷、省事兒

linux用yum命令下東西的時候速度非常慢,就是因為linux中centos7是預設國外源的,所以我們需要換成國內的源,這裡推薦使用阿里源

以下是更換yum成阿里源的操作步驟:

  1. 看看自己有沒有安裝wget yum list wget

  1. 如果沒有安裝,現場安裝:yum -y install wget
  2. 備份映象源(放置更換過程中出錯):mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  3. 從網路上下載yum源配置檔案:sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  4. 清理後生成快取
yum clean all
yum makecache

到此成功更換yum的源為阿里雲

從源中搜尋可安裝jdk

yum search jdk

安裝jdk1.8.0

yum install java-1.8.0-openjdk.x86_64

當然也可以安裝其他版本的,1.8比較穩定

安裝好了之後環境變數也自動配置好了

可以使用java -version來測試

到此成功安裝jdk


六、配置SSH免密碼登入

有什麼作用?當用一臺計算機使用者登入另一臺計算機時,每次登入都必須輸入密碼,在hadoop中,需要成千上萬次登入,那麼如果每次都需要輸入密碼的話,速度太慢了,而且折磨人

  1. 進入.ssh目錄:cd ~/.ssh

  2. 生成ssh祕鑰:ssh-keygen -t rsa 一直回車,三臺計算機都要這樣生成祕鑰

  3. 到此生成了兩個檔案:

    id_rsa和id_rsa.pub

    在第一臺計算機上執行:cp id_rsa.pub authorized_keys
    生成副本

    修改檔案許可權:

    chmod authorized_keys
    
  4. 測試一下本機無密碼登入

    sudo service sshd restart
    ssh master
    

    以下情況則代表登入成功:

  5. 測試第一臺計算機與其他計算機無密碼登入

向其他計算機傳送祕鑰:

scp /root/.ssh/authorized_keys 目的機使用者名稱@目的機名稱:/root/.ssh
  1. 測試能否無密碼登入其他計算機

ok,到此成功配置SSH免密碼登入


七、安裝hadoop

手動下載hadoop官方壓縮包:http://hadoop.apache.org/releases.html

挑選一個版本,下載二進位制檔案

這兒我下載的2.9.2版本

使用一個Windows客戶端軟體,點選下載:WinSCP(可將Windows上的檔案傳輸到linux)

上傳後解壓,將解壓資料夾移動到/opt/hadoop

tar -zxvf hadoop-2.9.2.tar.gz
mv hadoop-2.9.2 /opt/hadoop

進入/opt/hadoop/hadoop2.9.2/etc/hadoop/目錄

cd /opt/hadoop/hadoop2.7.4/etc/hadoop/

檢視該目錄下的檔案

編輯hadoop.enc.sh和yarn.env.sh

將JAVA_HOME配置好,如何檢視yum命令安裝的jdk路徑?


八、配置檔案

進入到/opt/hadoop/hadoop2.9.4/etc/hadoop/目錄

cd /opt/hadoop/hadoop2.7.4/etc/hadoop/

檢視目錄下所有檔案:

注:mapred-site.xml原本是不存在的,由mapred-site.cml.template複製而來

往檔案的標籤記憶體放這些屬性:

core-site.xml

  <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
  </property>
  <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/tmp</value>
  </property>

效果如下:

hdfs-site.xml

      <property>
        <name>dfs.replication</name>
        <value>2</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/hadoop/dfs/name</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/hadoop/dfs/data</value>
      </property>

mapred-site.xml

  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>Master:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>Master:19888</value>
  </property>

yarn-site.xml

   <!-- Site specific YARN configuration properties -->
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
      </property>
      <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
      </property>
      <property>
    <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
      </property>
      <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
      </property>
      <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
      </property>
      <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
      </property>

編輯slaves檔案,在裡面新增克隆計算機的名字

例如:

利用scp將配置好的hadoop傳送到各個計算機

scp -r /opt/hadoop 目的機使用者名稱@目的機名稱:/opt/hadoop

若發現許可權不夠,可以先傳送到計算機的其他位置,再移動到/opt/hadoop資料夾下


九、叢集群起

在第一臺計算機上初始化(如果已經初始化一次,那麼以後就儘量不要初始化)

bin/hdfs namenode -format

關閉防火牆:

systemctl stop firewalld.service

群起:

sbin/start-all.sh

此時可用jps命令檢視是否已經啟動


十、檢驗

在Windows宿主機上,開啟瀏覽器,輸入

http://你的第一臺計算機名或者ip:8088

比如我的可以輸入:

http://192.168.112.136:8088
或者
http://master:8088

出現如下介面:

如果許久沒有出現這個介面,檢查一下第一臺計算機的防火牆是不是沒關

service firewalld status

在位址列輸入時,將埠號改成50070,出現:

hadoop環境搭建成功!

相關文章