当前位置:   article > 正文

2024年最全Hadoop 完全分布式部署_hadoop分布式安装部署,2024年最新10年阿里开发架构师经验分享_hadoop3.3.4集群搭建

hadoop3.3.4集群搭建

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

[hadoop@node1 ~]$ mkdir ~/bin

  • 1
  • 2

创建分发脚本文件xsync

[hadoop@node2 ~]$ vim ~/bin/xsync

  • 1
  • 2

内容如下

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi
#2. 遍历集群所有机器
for host in node1 node2 node3
do
    echo ====================  $host  ====================    
    #3. 遍历所有目录,挨个发送
    for file in $@
    do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)
                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

修改权限

[hadoop@node1 ~]$ chmod +x ~/bin/xsync

  • 1
  • 2

测试

分别在node2、node3机器安装xsync命令

sudo yum install rsync -y

  • 1
  • 2

把xsync命令发送到node2、node3

xsync /home/hadoop/bin

  • 1
  • 2

二、安装JDK

① 上传jdk文件到已经安装好的node1,上传方式有很多,任选一种方式即可:

② 上传成功后,通过 ls 命令查看是否上传成功

③ 解压jdk-8u202-linux-x64.tar.gz/opt/module/hadoop目录下:

[hadoop@node1 ~]$ tar -zxvf  jdk-8u202-linux-x64.tar.gz -C /opt/module/hadoop

  • 1
  • 2

没有/opt/module/hadoop目录先创建,因为是使用hadoop普通用户,把hadoop目录的所属用户改为hadoop

[hadoop@node1 ~]$ sudo chown hadoop:hadoop -R /opt/module/hadoop 

  • 1
  • 2

④建立 JDK 软链接,以方便后续使用:

[hadoop@node1 hadoop]$ cd  /opt/module/hadoop/
[hadoop@node1 hadoop]$ ln -s  /opt/module/hadoop/jdk1.8.0_202 jdk

  • 1
  • 2
  • 3

⑤ 配置 JDK 环境变量 :

[hadoop@node1 hadoop]$ sudo vim /etc/profile

  • 1
  • 2

vim 为打开文件命令

在文件内容的末尾添加如下代码(注意:等号两侧不要有空格)。

export JAVA\_HOME=/opt/module/hadoop/jdk
export JRE\_HOME=${JAVA\_HOME}/jre
export CLASSPATH=$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar:.
export PATH=${JAVA\_HOME}/bin:$PATH

  • 1
  • 2
  • 3
  • 4
  • 5

⑥ 使配置生效 :

[hadoop@node1 hadoop]$ source /etc/profile

  • 1
  • 2

⑦ 检验是否安装成功 :

[hadoop@node1 hadoop]$ java -version
java version "1.8.0\_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

  • 1
  • 2
  • 3
  • 4
  • 5

三、Hadoop集群安装部署

1.安装Hadoop

(1) 上传hadoop安装包到已经安装好的node1,上传方式有很多,任选一种方式即可

(2)上传成功后,通过 ls 命令查看是否上传成功

(3)解压hadoop-3.3.4.tar.gz/opt/module/hadoop/目录下

[hadoop@node1 ~]$ tar -xzvf hadoop-3.3.4.tar.gz -C  /opt/module/hadoop/

  • 1
  • 2

(4)建立 hadoop软链接,以方便后续使用

[hadoop@node1 hadoop]$ cd  /opt/module/hadoop/
[hadoop@node1 hadoop]$ ln -s  /opt/module/hadoop/hadoop-3.3.4 hadoop

  • 1
  • 2
  • 3

(5)配置 hadoop 环境变量

[hadoop@node1 hadoop]$ sudo vim /etc/profile

  • 1
  • 2

在文件内容的末尾添加如下代码(注意:等号两侧不要有空格)。

export HADOOP\_HOME=/opt/module/hadoop/hadoop
export PATH=$PATH:$HADOOP\_HOME/bin:$HADOOP\_HOME/sbin

  • 1
  • 2
  • 3

(6) 使配置生效 :

[hadoop@node1 software]$ source /etc/profile

  • 1
  • 2

(7) 校验

[hadoop@node1 software]$ hadoop version
Hadoop 3.3.4
Source code repository https://github.com/apache/hadoop.git -r a585a73c3e02ac62350c136643a5e7f6095a3dbb
Compiled by stevel on 2022-07-29T12:32Z
Compiled with protoc 3.7.1
From source with checksum fb9dd8918a7b8a5b430d61af858f6ec
This command was run using /opt/module/hadoop/hadoop-3.3.4/share/hadoop/common/hadoop-common-3.3.4.jar
[hadoop@node1 software]$ 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

看到hadoop版本号输出,说明环境变量配置成功

2.配置Hadoop 集群

1)核心配置文件

配置core-site.xml

[hadoop@node1 bin]$ cd $HADOOP\_HOME/etc/hadoop
[hadoop@node1 hadoop]$  vim core-site.xml

  • 1
  • 2
  • 3

内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
<configuration>
<!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:9820</value>
    </property>
    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop/hadoop-3.3.4/data</value>
    </property>
 
    <!-- 配置HDFS网页登录使用的静态用户为hadoop -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>hadoop</value>
    </property>
 
    <!-- 配置该hadoop(superUser)允许通过代理访问的主机节点 -->
    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    <!-- 配置该hadoop(superUser)允许通过代理用户所属组 -->
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
    </property>
    <!-- 配置该hadoop(superUser)允许通过代理的用户-->
    <property>
        <name>hadoop.proxyuser.hadoop.users</name>
        <value>*</value>
    </property>
</configuration>  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

2)配置hdfs-site.xml

[hadoop@node1 hadoop]$ vim hdfs-site.xml                                                       

  • 1
  • 2

内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>   
<configuration>
<!-- nn web端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
       	<value>node1:9870</value>
    </property>
    <!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node3:9868</value>
    </property>
</configuration>    

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3)配置yarn-site.xml

[hadoop@node1 hadoop]$ vim yarn-site.xml

  • 1
  • 2

内容如下:

<?xml version="1.0"?>
<configuration>
    <!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
	</property>
    
    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node2</value>
    </property>
    
    <!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
    
    <!-- yarn容器允许分配的最大最小内存 -->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>2048</value>
    </property>
    
    <!-- yarn容器允许管理的物理内存大小 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
    </property>
    
    <!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48

4)配置mapred-site.xml

[hadoop@node1 hadoop]$ vim mapred-site.xml

  • 1
  • 2

内容如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

5)配置workers

[hadoop@node1 hadoop]$ vim workers

  • 1
  • 2

把原有的内容替换成如下内容:

node1
node2
node3

  • 1
  • 2
  • 3
  • 4

注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

6)配置历史服务器

修改mapred-site.xml

[hadoop@node1 hadoop]$ vim mapred-site.xml

  • 1
  • 2

mapred-site.xml添加如下配置

    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
    </property>
 
    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node1:19888</value>
    </property>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

文件最终结果:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
        <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
    </property>

    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node1:19888</value>
    </property>

</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

7)配置日志聚集

修改yarn-site.xml

[hadoop@node1 hadoop]$ vim yarn-site.xml

  • 1
  • 2

yarn-site.xml<configuration></configuration>之间添加如下配置

    <!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
 
    <!-- 设置日志聚集服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://node1:19888/jobhistory/logs</value>
    </property>
 
    <!-- 设置日志保留时间为7天 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

8)在hadoop-env.sh文件配置

[hadoop@node1 hadoop]$ vim hadoop-env.sh 

  • 1
  • 2

内容:

export JAVA\_HOME=/opt/module/hadoop/jdk 

  • 1
  • 2

9)分发hadoop安装文件

把hadoop安装配置文件从node1机器分发到node2、node3机器

[hadoop@node1 hadoop]$ xsync /opt/module/hadoop

  • 1
  • 2

查看node2和node3机器是否有hadoop和jdk文件

10)修改环境变量

修改node2、node3环境变量,分别在node2、node3机器上操作

sudo vim /etc/profile

  • 1
  • 2

文件末尾添加:

#JAVA
export JAVA\_HOME=/opt/module/hadoop/jdk
export JRE\_HOME=${JAVA\_HOME}/jre
export CLASSPATH=$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar:.
export PATH=${JAVA\_HOME}/bin:$PATH

#Hadoop
export HADOOP\_HOME=/opt/module/hadoop/hadoop
export PATH=$PATH:$HADOOP\_HOME/bin:$HADOOP\_HOME/sbin

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

让环境变量生效

source /etc/profile

  • 1
  • 2

验证是否已经安装好。

11)格式化文件系统

在node1机器执行格式化hdfs

[hadoop@node1 ~]$ hdfs namenode -format

  • 1
  • 2

在这里插入图片描述

看到successfully formatted为格式化成功。

注意:格式化成功后,以后就不能再次格式化了。

12) 启动hdfs

在node1机器上执行启动hdfs命令

[hadoop@node1 hadoop]$ start-dfs.sh

  • 1
  • 2

13)启动yarn

在node2机器上执行启动yarn命令

[hadoop@node2 hadoop]$ start-yarn.sh

  • 1
  • 2

至此,如果过程中没有报错就已经部署完成,接下来可以进行验证。

3.验证
3.1 进程验证

分别在不同机器执行jps命令

node1:

[hadoop@node1 hadoop]$ jps
4049 NodeManager
4145 Jps
3619 NameNode
3742 DataNode

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

node2:

[hadoop@node2 hadoop]$ jps
2064 DataNode
2231 ResourceManager
2345 NodeManager
2698 Jps

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

node3:

[hadoop@node3 ~]$ jps
2419 Jps
2199 SecondaryNameNode
2120 DataNode
2317 NodeManager

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
3.2 浏览器验证

浏览器访问namenode,输入namenode所在的节点IP及配置的端口

http://10.90.100.121:9870

在这里插入图片描述

浏览器访问yarn,输入yarn所在的节点IP及配置的端口

http://10.90.100.122:8088

在这里插入图片描述

浏览器访问SecondaryNameNode

http://10.90.100.123:9868

在这里插入图片描述

附: Hadoop群起脚本

为了更加便捷的启动和停止集群运行,可以写一个脚本实现。

(1)在/home/hadoop/bin目录下创建hdp.sh脚本文件

[hadoop@node1 ~]$ vim ~/bin/hdp.sh

  • 1
  • 2

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

10.90.100.122:8088`

在这里插入图片描述

浏览器访问SecondaryNameNode

http://10.90.100.123:9868

在这里插入图片描述

附: Hadoop群起脚本

为了更加便捷的启动和停止集群运行,可以写一个脚本实现。

(1)在/home/hadoop/bin目录下创建hdp.sh脚本文件

[hadoop@node1 ~]$ vim ~/bin/hdp.sh

  • 1
  • 2

[外链图片转存中…(img-F8P6mWHW-1715630703578)]
[外链图片转存中…(img-MHhRos4r-1715630703578)]
[外链图片转存中…(img-ztHwgwK6-1715630703579)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/854385
推荐阅读
相关标签
  

闽ICP备14008679号