天天看點

hadoop叢集搭建詳細過程(完全分布式)一、所需資源下載下傳路徑二、centos基礎環境配置

一、所需資源下載下傳路徑

  • linux選用centos8
https://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso
           
  • jdk1.8(hadoop是java寫的,運作需要jre)
    https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
               
  • hadoop3
連結:https://pan.baidu.com/s/11sPp1oec6uBi8Ci1BvV0rw 提取碼:1234
           

二、centos基礎環境配置

1. JDK8配置

1)scp 本機中jdk檔案 [email protected]的ip:目标路徑。解壓到 /opt/module目錄下(個人習慣)。

2)配置JAVA_HOME、JRE、CLASSPATH環境變量

修改/etc/profile在檔案末尾添加:

export JAVA_HOME=/opt/moudle/jdk-14.0.2
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
           

2.修改centos虛拟機的基本環境

1)将動态ip改為靜态ip

修改/etc/sysconfig/network-script/ifcfg-ens33

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"

 

DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="9931db14-5f9e-4366-99c2-d5a218ef645c"
DEVICE="ens33"
1. 修改BOOTPROTO="static"
2. 修改ONBOOT="yes"
3. 添加
IPADDR="192.168.152.10"
NETMASK="255.255.255.0"
GATEWAY="192.168.152.2"
DNS1="114.114.114.114"

           

2)關閉防火牆

關閉防火牆服務systemctl stop firewalld

關閉開機啟動 systemctl disable firewalld

關閉selinux :

vim /etc/sysconfig/selinux 然後将配置SELinux=enforcing改為SELinux=disabled

關閉windows防火牆,否則linux ping 不通windows

關閉 防火牆和網絡保護 =>

  • 區域網路
  • 專用網絡
  • 公用網絡

三、hadoop叢集配置

192.168.179.20 192.168.179.30 192.168.179.31
master20 slaver30 slaver31

1.克隆master20虛拟機得到 slaver30 slaver31

  • 為slaver配置靜态ip (vim /etc/sysconfig/network-script/ifcfg-ens33)
  • 為slaver設定hostname (vim /etc/hostname)
  • 設定host映射(vim /etc/hosts)
  • 為每一台都配置ssh登入(實作任意兩台可以ssh登入,并且自己可以ssh登入自己)

    執行:ssh-keygen

    建立檔案:vim ~/.ssh/authorized_keys (權限:chmod 600 authorized_keys ;chmod 700 -R .ssh)

    公鑰分發:ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 [email protected]

2. 配置hadoop

1) 配置環境變量

修改/etc/profile末尾添加(source /etc/profile後生效)
           
export HADOOP_HOME=/opt/moudle/hadoop-3.3.0
 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
           

2)修改hadoop配置檔案(/opt/moudule/hadoop3/etc/hadoop)

(1)在 core-site.xml 添加以下配置
<configuration>
        <!-- NameNode 位址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>

   <!-- Hadoop臨時檔案目錄,預設是/tmp目錄,系統重新開機後資料丢失 -->
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/moudule/hadoop3/data/tmp</value>
   </property>
</configuration>

           
(2) 在 hadoop-env.sh 最後添加以下配置
export JAVA_HOME=/opt/moudule/jdk8


#root使用者啟動失敗 修改 etc/hadoop/hadoop-env.sh 添加如下
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

           
(3) 在 hdfs-site.xml 中添加以下配置
<configuration>
        <property>
                <name>dfs.namenode.ame.dir</name>
                <value>/opt/moudule/hadoop3/data/name</value>
        </property>
        <!--本結點datanode資料目錄-->
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/opt/moudule/hadoop3/data/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
</configuration>

           
(4) 在 mapred-site.xml 中添加以下配置
<configuration>

        <property>
                <name>mapreduce.framwork.name</name>
                <value>yarn</value>
        </property>
</configuration>
           

(5) 在 workers 中修改為如下配置

master20
slaver30
slaver31
           

(6) 在 yarn-site.xml 添加如下配置

<configuration>

<!-- Site specific YARN configuration properties -->

        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master20</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>192.168.179.20:8088</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-service</name>
                <value>mapreduce_shuffle</value>
        </property>

</configuration>
           

(7) 将 hadoop 目錄從 master 拷貝到 slave1 與 slave2,由于之前配置了免密登入,是以不需要輸入密碼即可完成拷貝.

(8) 建立臨時檔案目錄 (三台機器都需建立), 建立的目錄對應于 hdfs-site.xml 中配置的資料存儲目錄

(9) 格式化 hdfs 檔案系統,在master結點上的hadoop的安裝目錄下的 bin 目錄下執行以下指令

hdfs namenode -format
           

(10) 運作hadoop叢集

start-all.sh
           

四、測試

在master30執行jps指令:

hadoop叢集搭建詳細過程(完全分布式)一、所需資源下載下傳路徑二、centos基礎環境配置

namenode: hdfs的master

resourcemanager: yarn的master

在slaver執行jps:

hadoop叢集搭建詳細過程(完全分布式)一、所需資源下載下傳路徑二、centos基礎環境配置

datanode: hdfs的slaver

nodemanager: yarn的slaver

恭喜你,大功告成!!!

繼續閱讀