大数据集群(Hadoop生态)安装部署

news2024/11/15 21:33:20

目录

1.  简介

2.  前置要求

3.  Hadoop集群角色

4.  角色和节点分配

5.  调整虚拟机内存

6.  Zookeeper集群部署

7.  Hadoop集群部署

7.1  下载Hadoop安装包、解压、配置软链接

7.2  修改配置文件:hadoop-env.sh

7.3  修改配置文件:core-site.xml

7.4  配置:hdfs-site.xml文件

7.5  配置:mapred-env.sh文件

7.6  配置:mapred-site.xml文件

7.7  配置:yarn-env.sh文件

7.8  配置:yarn-site.xml文件

7.9  修改workers文件

7.10  分发hadoop到其它机器

7.11  在node2、node3执行

7.12  创建所需目录

7.13  配置环境变量

7.14  格式化NameNode,在node1执行

7.15  启动hadoop的hdfs集群,在node1执行即可

7.16  启动hadoop的yarn集群,在node1执行即可

7.17  启动历史服务器

7.18  启动web代理服务器

8.  验证Hadoop集群运行情况

8.1  在node1、node2、node3上通过jps验证进程是否都启动成功

8.2  验证HDFS,浏览器打开:http: / node1:9870

8.3  验证YARN,浏览器打开:http: / node1:8088


1.  简介

1 Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。
2 )主要解决,海量数据的存储和海量数据的分析计算问题。
Hadoop HDFS 提供分布式海量数据存储能力;
Hadoop YARN 提供分布式集群资源管理能力;
Hadoop MapReduce 提供分布式海量数据计算能力

2.  前置要求

请确保完成了集群化环境前置准备章节的内容
即: JDK SSH 免密、关闭防火墙、配置主机名映射等前置操作
链接: 集群化环境前置准备_时光の尘的博客-CSDN博客
链接: Zookeeper集群安装部署、Kafka集群安装部署_时光の尘的博客-CSDN博客

3.  Hadoop集群角色

Hadoop 生态体系中总共会出现如下进程角色:
1. Hadoop HDFS 的管理角色: Namenode 进程( 仅需 1 个即可(管理者一个就够)
2. Hadoop HDFS 的工作角色: Datanode 进程( 需要多个(工人,越多越好,一个机器启动一个)
3. Hadoop YARN 的管理角色: ResourceManager 进程( 仅需 1 个即可(管理者一个就够)
4. Hadoop YARN 的工作角色: NodeManager 进程( 需要多个(工人,越多越好,一个机器启动一个)
5. Hadoop 历史记录服务器角色: HistoryServer 进程( 仅需 1 个即可(功能进程无需太多1 个足够)
6. Hadoop 代理服务器角色: WebProxyServer 进程( 仅需 1 个即可(功能进程无需太多1 个足够)
7. Zookeeper 的进程: QuorumPeerMain 进程( 仅需 1 个即可( Zookeeper 的工作者,越多越好)

4.  角色和节点分配

角色分配如下:
1. node1:Namenode Datanode ResourceManager NodeManager 、 HistoryServer、 WebProxyServer QuorumPeerMain
2. node2:Datanode NodeManager QuorumPeerMain
3. node3:Datanode NodeManager QuorumPeerMain

5.  调整虚拟机内存

如上图,可以看出 node1 承载了太多的压力。同时 node2 node3 也同时运行了不少程序,为了确保集群的稳定,需要对虚拟机进行内存设置。
请在 VMware 中,对:
1. node1 设置 4GB 或以上内存
2. node2 node3 设置 2GB 或以上内存
大数据的软件本身就是集群化(一堆服务器)一起运行的。
现在我们在一台电脑中以多台虚拟机来模拟集群,确实会有很大的内存压力哦。

6.  Zookeeper集群部署

Zookeeper集群安装部署、Kafka集群安装部署_时光の尘的博客-CSDN博客

7.  Hadoop集群部署

7.1  下载Hadoop安装包、解压、配置软链接

# 1. 下载
wget
http://rchive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

# 2. 解压
# 请确保目录/export/server存在
tar -zxvf hadoop-3.3.0.tar.gz -C /export/server/

# 3. 构建软链接
ln -s /export/server/hadoop-3.3.0 /export/server/hadoop

7.2  修改配置文件:hadoop-env.sh

cd 进入到 /export/server/hadoop/etc/hadoop ,文件夹中,配置文件都在这里
修改 hadoop-env.sh 文件
此文件是配置一些 Hadoop 用到的环境变量
这些是临时变量,在 Hadoop 运行时有用
如果要永久生效,需要写到 /etc/profile
# 在文件开头加入:
# 配置Java安装路径
export JAVA_HOME=/export/server/jdk

# 配置Hadoop安装路径
export HADOOP_HOME=/export/server/hadoop
# Hadoop hdfs配置文件路径
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

# Hadoop YARN配置文件路径
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

# Hadoop YARN 日志文件夹
export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn

# Hadoop hdfs 日志文件夹
export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs

# Hadoop的使用启动用户配置
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
export YARN_PROXYSERVER_USER=root

7.3  修改配置文件:core-site.xml

如下,清空文件,填入如下内容
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="configuration.xsl"?>

Licensed under the Apache License, Version 2.0
(the "License");
you may not use this file except in compliance
with the License.
You may obtain a copy of the License at

http: / www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in
writing, software
distributed under the License is distributed on
an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied.
See the License for the specific language
governing permissions and
limitations under the License. See accompanying
LICENSE file.
>

- Put site-specific property overrides in this
file. >
 <configuration>
<property>
 <name>fs.defaultFS / name>
 <value>hdfs: / node1:8020 / value>
 <description> / description>
 / property>

 <property>
 <name>io.file.buffer.size / name>
 <value>131072 / value>
 <description> / description>
 / property>
 / configuration>

格式转换出现了问题,这里用图片展现上述代码:

7.4  配置:hdfs-site.xml文件

1 <?xml version="1.0" encoding="UTF-8"?>
2 <?xml-stylesheet type="text/xsl"
href="configuration.xsl"?>
3 4 Licensed under the Apache License, Version 2.0
(the "License");
5 you may not use this file except in compliance
with the License.
6 You may obtain a copy of the License at
7
8 http: / www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in
writing, software
11 distributed under the License is distributed on
an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied.
13 See the License for the specific language
governing permissions and
14 limitations under the License. See accompanying
LICENSE file.
15 >
16
17 - Put site-specific property overrides in this
file. >
18
19 <configuration>
20 <property>
21 <name>dfs.datanode.data.dir.perm / name>
22 <value>700 / value>
23 / property>
24
25 <property>
26 <name>dfs.namenode.name.dir / name>
27 <value>/data/nn / value>
28 <description>Path on the local filesystem where
the NameNode stores the namespace and transactions
logs persistently. / description>
29 / property>
30
31 <property>
32 <name>dfs.namenode.hosts / name>
33 <value>node1,node2,node3 / value>
34 <description>List of permitted DataNodes.
/
description>
35 / property>
36
37 <property>
38 <name>dfs.blocksize / name>
39 <value>268435456 / value>
40 <description> / description>
41 / property>
42
43
44 <property>
45 <name>dfs.namenode.handler.count / name>
46 <value>100 / value>
47 <description> / description>
48 / property>
49
50 <property>
51 <name>dfs.datanode.data.dir / name>
52 <value>/data/dn / value>
53 / property>
54 / configuration>

同上,代码转换时出现错误,请参考:

7.5  配置:mapred-env.sh文件

1 # 在文件的开头加入如下环境变量设置
2 export JAVA_HOME=/export/server/jdk
3 export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
4 export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

7.6  配置:mapred-site.xml文件

1 <?xml version="1.0"?>
2 <?xml-stylesheet type="text/xsl"
href="configuration.xsl"?>
3 4 Licensed under the Apache License, Version 2.0
(the "License");
5 you may not use this file except in compliance
with the License.
6 You may obtain a copy of the License at
7
8 http: / www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in
writing, software
11 distributed under the License is distributed on
an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied.
13 See the License for the specific language
governing permissions and
14 limitations under the License. See accompanying
LICENSE file.
15 >
16
17 - Put site-specific property overrides in this
file. >
18
19 <configuration>
20 <property>
21 <name>mapreduce.framework.name / name>
22 <value>yarn / value>
23 <description> / description>
24 / property>
25
26 <property>
27 <name>mapreduce.jobhistory.address / name>
28 <value>node1:10020 / value>
29 <description> / description>
30 / property>
31
32
33 <property>
34
<name>mapreduce.jobhistory.webapp.address / name>
35 <value>node1:19888 / value>
36 <description> / description>
37 / property>
38
39
40 <property>
41 <name>mapreduce.jobhistory.intermediate-donedir / name>
42 <value>/data/mr-history/tmp / value>
43 <description> / description>
44 / property>
45
46
47 <property>
48 <name>mapreduce.jobhistory.done-dir / name>
49 <value>/data/mr-history/done / value>
50 <description> / description>
51 / property>
52 <property>
53 <name>yarn.app.mapreduce.am.env / name>
54 <value>HADOOP_MAPRED_HOME=$HADOOP_HOME / value>
55 / property>
56 <property>
57 <name>mapreduce.map.env / name>
58 <value>HADOOP_MAPRED_HOME=$HADOOP_HOME / value>
59 / property>
60 <property>
61 <name>mapreduce.reduce.env / name>
62 <value>HADOOP_MAPRED_HOME=$HADOOP_HOME / value>
63 / property>
64 / configuration>

7.7  配置:yarn-env.sh文件

1 # 在文件的开头加入如下环境变量设置
2 export JAVA_HOME=/export/server/jdk
3 export HADOOP_HOME=/export/server/hadoop
4 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
5 export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
6 export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
7 export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs

7.8  配置:yarn-site.xml文件

1 <?xml version="1.0"?>
2 3 Licensed under the Apache License, Version 2.0
(the "License");
4 you may not use this file except in compliance
with the License.
5 You may obtain a copy of the License at
6
7 http: / www.apache.org/licenses/LICENSE-2.0
8
9 Unless required by applicable law or agreed to in
writing, software
10 distributed under the License is distributed on
an "AS IS" BASIS,
11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied.
12 See the License for the specific language
governing permissions and
13 limitations under the License. See accompanying
LICENSE file.
14 >
15 <configuration>
16
17 - Site specific YARN configuration properties >
18 <property>
19 <name>yarn.log.server.url / name>
20
<value>http: / node1:19888/jobhistory/logs / value>
21 <description> / description>
22 / property>
23
24 <property>
25 <name>yarn.web-proxy.address / name>
26 <value>node1:8089 / value>
27 <description>proxy server hostname and
port / description>
28 / property>
29
30
31 <property>
32 <name>yarn.log-aggregation-enable / name>
33 <value>true / value>
34 <description>Configuration to enable or disable
log aggregation / description>
35 / property>
36
37 <property>
38 <name>yarn.nodemanager.remote-app-logdir / name>
39 <value>/tmp/logs / value>
40 <description>Configuration to enable or disable
log aggregation / description>
41 / property>
42
43
44 - Site specific YARN configuration properties >
45 <property>
46 <name>yarn.resourcemanager.hostname / name>
47 <value>node1 / value>
48 <description> / description>
49 / property>
50
51 <property>
52
<name>yarn.resourcemanager.scheduler.class / name>
53
<value>org.apache.hadoop.yarn.server.resourcemanag
er.scheduler.fair.FairScheduler / value>
54 <description> / description>
55 / property>
56
57 <property>
58 <name>yarn.nodemanager.local-dirs / name>
59 <value>/data/nm-local / value>
60 <description>Comma-separated list of paths on
the local filesystem where intermediate data is
written. / description>
61 / property>
62
63
64 <property>
65 <name>yarn.nodemanager.log-dirs / name>
66 <value>/data/nm-log / value>
67 <description>Comma-separated list of paths on
the local filesystem where logs are written.
/
description>
68 / property>
69
70
71 <property>
72 <name>yarn.nodemanager.log.retainseconds / name>
73 <value>10800 / value>
74 <description>Default time (in seconds) to
retain log files on the NodeManager Only applicable
if log-aggregation is disabled. / description>
75 / property>
76
77
78
79 <property>
80 <name>yarn.nodemanager.aux-services / name>
81 <value>mapreduce_shuffle / value>
82 <description>Shuffle service that needs to be
set for Map Reduce applications. / description>
83 / property>
84 / configuration>

7.9  修改workers文件

1 # 全部内容如下
2 node1
3 node2
4 node3

7.10  分发hadoop到其它机器

1 # 在node1执行
2 cd /export/server
3
4 scp -r hadoop-3.3.0 node2:`pwd`/
5 scp -r hadoop-3.3.0 node2:`pwd`/

7.11  在node2node3执行

# 创建软链接
ln -s /export/server/hadoop-3.3.0
/export/server/hadoop

7.12  创建所需目录

node1 执行:
1 mkdir -p /data/nn
2 mkdir -p /data/dn
3 mkdir -p /data/nm-log
4 mkdir -p /data/nm-local
node2 执行:
1 mkdir -p /data/dn
2 mkdir -p /data/nm-log
3 mkdir -p /data/nm-local
node3 执行:
1 mkdir -p /data/dn
2 mkdir -p /data/nm-log
3 mkdir -p /data/nm-local

7.13  配置环境变量

node1 node2 node3 修改 /etc/profile
export HADOOP_HOME =/export/server/hadoop
export PATH = $PATH : $HADOOP_HOME /bin: $HADOOP_HOME /sbin
执行 source /etc/profile 生效

7.14  格式化NameNode,在node1执行

hadoop namenode -format
hadoop 这个命令来自于: $HADOOP_HOME/bin 中的程序
由于配置了环境变量 PATH ,所以可以在任意位置执行 hadoop 命令哦

7.15  启动hadoophdfs集群,在node1执行即可

start-dfs.sh

# 如需停止可以执行
stop-dfs.sh
start-dfs.sh 这个命令来自于: $HADOOP_HOME/sbin 中的程序
由于配置了环境变量 PATH ,所以可以在任意位置执行 start-dfs.sh 命令哦

7.16  启动hadoopyarn集群,在node1执行即可

start-yarn.sh
# 如需停止可以执行
stop-yarn.sh

7.17  启动历史服务器

mapred - daemon start historyserver
# 如需停止将start更换为stop

7.18  启动web代理服务器

yarn-daemon.sh start proxyserver
# 如需停止将start更换为stop

8.  验证Hadoop集群运行情况

8.1  在node1node2node3上通过jps验证进程是否都启动成功

8.2  验证HDFS,浏览器打开:http: / node1:9870

创建文件 test.txt ,随意填入内容,并执行:
hadoop fs -put test.txt /test.txt
hadoop fs -cat /test.txt

8.3  验证YARN,浏览器打开:http: / node1:8088

执行:
# 创建文件words.txt,填入如下内容
itheima itcast hadoop
itheima hadoop hadoop
itheima itcast

# 将文件上传到HDFS中
hadoop fs -put words.txt /words.txt

# 执行如下命令验证YARN是否正常
hadoop jar
/export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount -Dmapred.job.queue.name=root.root /words.txt /output

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1075302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动化机器人的开发框架

自动化领域有多个开源的框架和工具&#xff0c;用于自动化各种任务和流程。以下是一些常见的自动化开源框架和工具&#xff0c;以及它们的特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.Robot…

【Java】Java中BigDecimal解决精度丢失问题

文章目录 1.我们先看一个例子2.BigDecimal中的一些方法3.值得注意的是如果要想无精度丢失的情况下计算结果&#xff0c;那么需要把double,float类型的参数转化为String类型的。并且使用BigDecimal(String)这个构造方法进行构造。 去获取结果。不然还是没有效果。4.在一般开发过…

python curl2pyreqs 生成接口脚本

下载 curl2pyreqs 库 pip install curl2pyreqs -i https://pypi.tuna.tsinghua.edu.cn/simple 打开调试模式&#xff0c;在Network这里获取 接口的cURL 打开cmd窗口&#xff0c;输入curl2pyreqs&#xff0c;会自动生成接口代码 curl2pyreqs 执行接口脚本&#xff0c;返回响应…

Docker基础操作容器

启动容器有两种方式&#xff0c;一种是基于镜像新建一个容器并启动&#xff0c;另外一个是将在终止状态&#xff08;exited&#xff09;的容器重新启动。 因为 Docker 的容器实在太轻量级了&#xff0c;很多时候用户都是随时删除和新创建容器。 新建并启动 所需要的命令主要…

火爆全网的头戴式耳机,Y2K辣妹时髦单品——Umelody轻律 U1头戴式耳机!

近些年&#xff0c;“复古”这阵风在时尚圈是越刮越猛。Y2K穿搭风更是火爆&#xff0c;最近火爆的Umelody轻律 U1头戴式耳机&#xff0c;可以说是通过单品来就能掌握其中的精髓&#xff0c;在众多博主和达人的穿搭中轮番上阵&#xff0c;无论是挂脖还是佩戴都特别好看&#xff…

STM32单片机入门学习(五)-按钮控制LED

按钮和LED接线 LED负极接B12,正极接VCC 按钮一端接B13,一端接GND&#xff0c;按下为低电平&#xff0c;松开为高电平 如图&#xff1a; 主程序代码&#xff1a;main.c #include "stm32f10x.h" #include "Delay.h" //delay函数所在头文件 #include …

基于Springboot实现影视影院订票选座管理系统【项目源码+论文说明】

基于Springboot实现影视影院订票选座管理系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个影城管理系统 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论…

域信息收集

DMZ&#xff0c;是英文“demilitarized zone”的缩写&#xff0c;中文名称为“隔离区”&#xff0c;也称“非军事化区”。它是为了解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题&#xff0c;而设立的一个非安全系统与安全系统之间的缓冲区。该缓冲区位于企业…

Git Pull failure 【add/commit】

操作页面 操作步骤 1. 打开项目所在 在.git目录下右击打开Git Bssh Here 2. git add . 3. git commit -m "提交" 4. 成功提交到本地, 这下就可以拉取代码了

选择适合您的项目管理软件:哪个更好?

对于项目管理而言&#xff0c;一个优秀的项目管理工具可以达到事半功倍的效果。Zoho Projects 是一款功能强大&#xff0c;适用于各行业的标准化项目管理工具&#xff0c;具备适用度高的特点&#xff0c;丰富的功能模块可以匹配各行各业的项目管理。 一&#xff0c;任务管理 通…

JUC第十八讲:JUC集合-BlockingQueue 详解

JUC集合-BlockingQueue 详解 JUC里的 BlockingQueue 接口表示一个线程安全放入和提取实例的队列。本文是JUC第十八讲&#xff0c;将给你演示如何使用这个 BlockingQueue&#xff0c;不会讨论如何在 Java 中实现一个你自己的 BlockingQueue。 文章目录 JUC集合-BlockingQueue 详…

Linux是什么,有哪些特点?Linux和UNIX的关系及区别(详解版)

与大家熟知的 Windows 操作系统软件一样&#xff0c;Linux 也是一个操作系统软件&#xff0c;其 logo 是一只企鹅&#xff08;如图 1 所示&#xff09;。与 Windows 不同之处在于&#xff0c;Linux 是一套开放源代码程序的、可以自由传播的类 Unix 操作系统软件。 图 1 Linux 操…

Atcoder Regular Contest 166

只打了半场。 A. Replace C or Swap AB 首先如果存在某个 \(i\)&#xff0c;使得 \(Y_i\) 是 C 且 \(X_i\) 不是&#xff0c;那么显然是不合法的&#xff0c;可以直接判掉。 那么除去上述情况 \(Y\) 中为字符 C 的位置 \(X\) 也只能是 C。它们把字符串分成了若干段&#xff0c;…

LVGL_基础控件timer

LVGL_基础控件timer 1、创建基础控件定时器 /* 下面创建三个timer&#xff0c;最后创建的timer会被放在timer list的最前面&#xff0c; lvgl的任务处理器会从timer list从头到尾按顺序遍历检查&#xff0c;执行满足执行条件的timer。 因此&#xff0c;如果三个定时器的周期设…

帮微软语音助手纠正“阿弥陀佛”“e”字错误发音的技巧

一、前言 微软AI文字转语音助手&#xff0c;现已被大家普便应用。最近在传统文化佛学名词的发音转换应用中&#xff0c;发现了一个致命的错误。那就是“阿弥陀佛”中的“阿”字的“a”发音&#xff0c;被误读为“e”。说起这个重大的错误&#xff0c;佛门大德南怀瑾老师也一再…

排序算法——选择排序

一、介绍&#xff1a; 选择排序就是按照一定的顺序从选取第一个元素索引开始&#xff0c;将其储存在一个变量值中&#xff0c;根据排序规则比较后边每一个元素与这个元素的大小&#xff0c;根据排序规则需要&#xff0c;变量值的索引值进行替换&#xff0c;一轮遍历之后&#x…

【RabbitMQ】docker rabbitmq集群 docker搭建rabbitmq集群

docker rabbitmq集群 docker搭建rabbitmq集群 RabbitMQ提供了两种常用的集群模式 1.普通集群模式 2.镜像集群模式 普通集群模式只能同步主节点上的交换机和队列信息&#xff0c;但对于队列中的消息不做同步&#xff0c;主节点宕机也不能进行切换&#xff08;故障转移&#xff…

socket can查看详细信息 命令 ip -details -statistics link show can0

ip -details -statistics link show can0 ip -details link show can0 ip -statistics link show can0 也可以像第一行那样结合使用

C语言应用:Linux与Windows的系统化

作为一种广泛应用于软件开发的编程语言&#xff0c;C语言在工业应用领域也发挥着重要的作用。在本文中&#xff0c;我们将深入探索C语言在工业应用中的应用场景和价值&#xff0c;并重点关注它在Linux和Windows系统中的工业化之路。希望本文能为您介绍C语言在工业领域的实际应用…

SpringBoot-黑马程序员-学习笔记(二)

22.读取yaml文件中的属性 3个步骤&#xff1a; 1.写yaml文件 2.在控制类里面定义变量 3.在变量上面用 " Value注解 ${} " 获取yaml文件的属性 代码演示&#xff1a; yaml文件 控制类&#xff1a; 访问网址books后&#xff1a; 读取到了对应了值 23.yaml文件中…