Hadoop分佈式集羣的搭建


title: Hadoop分佈式集羣的搭建
summary: 關鍵詞: Hadoop ubuntu 分佈式集羣 環境搭建 ssh 網絡配置 java環境
date: 2019-5-19 11:09
author: foochane
urlname: 2019051901
categories: 大數據
tags:html

  • hadoop
  • 大數據

本文做者: foochane 
本文連接: https://foochane.cn/article/2019051901.html

1 安裝說明

1.1 用到的軟件

軟件 版本 下載地址
linux Ubuntu Server 18.04.2 LTS https://www.ubuntu.com/downlo...
hadoop hadoop-2.7.1 http://archive.apache.org/dis...
java jdk-8u211-linux-x64 https://www.oracle.com/techne...

1.2 節點安排

名稱 ip hostname
主節點 192.168.233.200 Master
子節點1 192.168.233.201 Slave01
子節點2 192.168.233.202 Slave02

2 建立hadoop用戶

全部的節點均建立一個名爲hadoop的用戶,並添加管理員權限。
注意:這裏這是單純爲了方便管理,建立的用戶名,也可使用其餘用戶名,或者使用系統以前的用戶,主要有管理員權限便可java

$ sudo useradd -m hadoop -s /bin/bash #建立用戶
$ sudo passwd hadoop #修改密碼
$ sudo adduser hadoop sudo #添加管理員權限

3 配置網絡環境

3.1 修改主機名

修改 /etc/hostname文件,每一個節點都要修改。node

  • 主節點修改成:Master
  • 從節點分別修改成:Slave01,Slave02,...

注意:若是是ubuntu18.04桌面版直接修改/etc/hostname文件便可,ubuntu18.04服務器版還須要修改/etc/cloud/cloud.cfg文件,修改以下:linux

# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true  #這裏是將false改爲true

3.2 添加IP與主機名的映射關係

/etc/hosts文件裏添加以下內容(每一個節點都要修改,根據實際狀況修改ip)web

192.168.233.200  Master
192.168.233.201  Slave01
192.168.233.202  Slave02

檢查各個節點是否能相互ping通。apache

3.3 設置SSH無密碼登陸節點

讓Master可以經過SSH無密碼登陸各個Slave節點ubuntu

若是修改過主機名,須要從新生成的新的公鑰。瀏覽器

在Master上執行以下命令:bash

$ cd ~/.ssh              # 若是沒有該目錄,先執行一次ssh localhost
$ rm ./id_rsa*           # 刪除以前生成的公匙(若是已經存在)
$ ssh-keygen -t rsa       # 執行該命令後,遇到提示信息,一直按回車就能夠
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

接着將Master中的id_rsa.pub文件複製到各個Slave節點中服務器

$ scp ~/.ssh/id_rsa.pub hadoop@Slave01:/home/hadoop/
$ scp ~/.ssh/id_rsa.pub hadoop@Slave02:/home/hadoop/

在各個Slave節點中執行以下命令:

$ mkdir ~/.ssh       # 若是不存在該文件夾需先建立
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
$ rm ~/id_rsa.pub    # 用完之後就能夠刪掉

在Master中驗證是否能夠無密碼登陸,各個Slave節點。

如:

$ ssh Slave01 #若是成功登陸,則配置完成
$ ssh Slave02 #若是成功登陸,則配置完成

4 安裝java環境

每一個節點都要安裝,步驟相同
爲了方便操做每一個節點,默認在/usr/local/下新建一個名爲bigdata的文件夾,存放全部的大數據相關的軟件。

$ sudo mkdir /usr/local/bigdata
$ sudo chown -R hadoop:hadoop /usr/local/bigdata/

4.1 解壓

$ sudo mkdir /usr/local/bigdata/java
$ sudo tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/local/bigdata/java/

4.2 添加環境變量

~/.bashrc文件中添加以下內容,並執行$ source ~/.bashrc命令使其生效

#java
export JAVA_HOME=/usr/local/bigdata/java/jdk1.8.0_211
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

5 解壓hadoop

下載hadoop-2.7.1.tar.gz文件,並解壓到/usr/local/bigdata/文件夾下

$ sudo tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local/bigdata

6 修改hadoop配置文件

須要修改6個文件,文件位於/usr/local/bigdata/hadoop-2.7.1/etc/hadoop/

6.1 slave 文件

將文件中原來的 localhost 刪除,添加內容:

Slave01
Slave02

6.2 core-site.xml 文件

內容修改成:

<configuration>
        <!-- 指定HADOOP所使用的文件系統schema(URI)-->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Master:9000</value>
        </property>

         <!-- 指定hadoop運行時產生文件的存儲目錄 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/bigdata/hadoop-2.7.1/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>

6.3 hdfs-site.xml文件

Hadoop的分佈式文件系統HDFS通常採用冗餘存儲,一份文件一般保存3份副本,因此dfs.replication的值仍是設置爲3。
具體內容以下:

<configuration>
        <property>
                <!-- 指定SecondaryNamenode所在地址 -->
                <name>dfs.namenode.secondary.http-address</name>
                <value>Master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/bigdata/hadoop-2.7.1/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/bigdata/hadoop-2.7.1/tmp/dfs/data</value>
        </property>
</configuration>

6.4 mapred-site.xml 文件

修改內容以下:

<configuration>
        <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>
</configuration>

6.5 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>
</configuration>

6.6 hadoop-env.sh 文件

修改以下內容:

export JAVA_HOME=/usr/local/bigdata/java/jdk1.8.0_211

# 能夠不用
export HADOOP_HOME=/usr/local/hadoop-2.7.1

7 設置hadoop環境變量

每一個節點都要設置
~/.bashrc文件中添加以下內容,並$ source ~/.bashrc使其生效

export PATH=$PATH:/usr/local/bigdata/hadoop-2.7.1/bin:/usr/local/bigdata/hadoop-2.7.1/sbin

8 slave節點配置

slave節點只需將master節點上/usr/local/下的bigdata文件夾和~/.bashrc文件,放到slave節點便可
注意切換到對應機器執行$ source ~/.bashrc使環境變量生效。

後續的軟件都可使用此方式配置。

在master節點:

$ sudo rm -r /usr/local/bigdata/hadoop-2.7.1/tmp     # 刪除 Hadoop 臨時文件,若是以前有啓動過
$ sudo rm -r /usr/local/bigdata/hadoop-2.7.1/logs/*   # 刪除日誌文件,若是以前有啓動過
$ tar -zcvf ~/bigdata.tar.gz /usr/local/bigdata/ # 先壓縮再複製
$ scp ~/bigdata.tar.gz Slave01:/home/hadoop
$ scp ~/bigdata.tar.gz Slave02:/home/hadoop
$ scp ~/bashrc Slave01:/home/hadoop
$ scp ~/bashrc Slave02:/home/hadoop

在各個slave節點上

$ sudo mkdir /usr/local/bigdata
$ sudo chown -R hadoop:hadoop /usr/local/bigdata
$ tar -zxvf ~/bigdata.tar.gz -C /usr/local/bigdata
$ sudo source ~/.bashrc

9 啓動Hadoop集羣

在Master上執行
首次運行須要,執行

$ hdfs namenode -format

格式化名稱節點,而後就能夠啓動hadoop了。

啓動hadoop:

$ start-dfs.sh
$ start-yarn.sh
$ mr-jobhistory-daemon.sh start historyserver

使用jps查看啓動的各個節點,缺乏任何進程,都表示出錯。

$ jps
3585 JobHistoryServer
2938 NameNode
3148 SecondaryNameNode
3308 ResourceManager
3629 Jps

瀏覽器查看:http://192.168.233.200:50070/

查看相關信息:$ hdfs dfsadmin -report

關閉hadoop:

$ stop-yarn.sh
$ stop-dfs.sh
$ mr-jobhistory-daemon.sh stop historyserver

若是有問題,重複以下命令:

$ stop-dfs.sh   # 關閉
$ rm -r /usr/local/bigdata/hadoop-2.7.1/tmp     # 刪除 tmp 文件,注意這會刪除 HDFS中原有的全部數據
$ hdfs namenode -format   # 從新格式化名稱節點
$ start-dfs.sh  # 重啓
相關文章
相關標籤/搜索