当前位置: 首页 > news >正文

Java核心知识点整理大全26-笔记

目录

27. Storm

7.1.1. 概念

27.1.1. 集群架构

27.1.1.1. Nimbus(master-代码分发给 Supervisor)

27.1.1.2. Supervisor(slave-管理 Worker 进程的启动和终止)

27.1.1.3. Worker(具体处理组件逻辑的进程)

27.1.1.4. Task

27.1.1.5. ZooKeeper

27.1.2. 编程模型(spout->tuple->bolt)

27.1.2.1. Topology

27.1.2.2. Spout

27.1.2.3. Bolt

27.1.2.4. Tuple

27.1.2.5. Stream

27.1.3. Topology 运行

27.1.3.1. Worker(1 个 worker 进程执行的是 1 个 topology 的子集)

27.1.3.2. Executor(executor 是 1 个被 worker 进程启动的单独线程)

27.1.3.3. Task(最终运行 spout 或 bolt 中代码的单元)

27.1.4. Storm Streaming Grouping

27.1.4.1. huffle Grouping

27.1.4.2. Fields Grouping

27.1.4.3. All grouping :广播

27.1.4.4. Global grouping

27.1.4.5. None grouping :不分组

27.1.4.6. Direct grouping :直接分组 指定分组

28. YARN

28.1.1. 概念

28.1.2. ResourceManager

28.1.3. NodeManager

28.1.4. ApplicationMaster

28.1.5.YARN 运行流程

29. 机器学习

Java核心知识点整理大全24-笔记-CSDN博客

往期快速传送门👆(在文章最后):


27. Storm

7.1.1. 概念

Storm 是一个免费并开源的分布式实时计算系统。利用 Storm 可以很容易做到可靠地处理无限的 数据流,像 Hadoop 批量处理大数据一样,Storm 可以实时处理数据。

27.1.1. 集群架构

27.1.1.1. Nimbus(master-代码分发给 Supervisor)

Storm 集群的 Master 节点,负责分发用户代码,指派给具体的 Supervisor 节点上的 Worker 节 点,去运行 Topology 对应的组件(Spout/Bolt)的 Task。

27.1.1.2. Supervisor(slave-管理 Worker 进程的启动和终止)

Storm 集群的从节点,负责管理运行在 Supervisor 节点上的每一个 Worker 进程的启动和终止。 通过 Storm 的配置文件中的 supervisor.slots.ports 配置项,可以指定在一个 Supervisor 上最大 允许多少个 Slot,每个 Slot 通过端口号来唯一标识,一个端口号对应一个 Worker 进程(如果该 Worker 进程被启动)。

27.1.1.3. Worker(具体处理组件逻辑的进程)

运行具体处理组件逻辑的进程。Worker 运行的任务类型只有两种,一种是 Spout 任务,一种是 Bolt 任务。

27.1.1.4. Task

worker中每一个spout/bolt的线程称为一个task. 在storm0.8 之后,task不再与物理线程对应, 不同 spout/bolt 的 task 可能会共享一个物理线程,该线程称为 executor。

27.1.1.5. ZooKeeper

用来协调 Nimbus 和 Supervisor,如果 Supervisor 因故障出现问题而无法运行 Topology, Nimbus 会第一时间感知到,并重新分配 Topology 到其它可用的 Supervisor 上运行

27.1.2. 编程模型(spout->tuple->bolt)

strom 在运行中可分为 spout 与 bolt 两个组件,其中,数据源从 spout 开始,数据以 tuple 的方 式发送到 bolt,多个 bolt 可以串连起来,一个 bolt 也可以接入多个 spot/bolt.运行时原理如下图:

27.1.2.1. Topology

Storm 中运行的一个实时应用程序的名称。将 Spout、 Bolt 整合起来的拓扑图。定义了 Spout 和 Bolt 的结合关系、并发数量、配置等等

27.1.2.2. Spout

在一个 topology 中获取源数据流的组件。通常情况下 spout 会从外部数据源中读取数据,然后转 换为 topology 内部的源数据。

27.1.2.3. Bolt

接受数据然后执行处理的组件,用户可以在其中执行自己想要的操作。

27.1.2.4. Tuple

一次消息传递的基本单元,理解为一组消息就是一个 Tuple。

27.1.2.5. Stream

Tuple 的集合。表示数据的流向。

27.1.3. Topology 运行

在 Storm 中,一个实时应用的计算任务被打包作为 Topology 发布,这同 Hadoop MapReduce 任务相似。但是有一点不同的是:在 Hadoop 中,MapReduce 任务最终会执行完成后结束;而在 Storm 中,Topology 任务一旦提交后永远不会结束,除非你显示去停止任务。计算任务 Topology 是由不同的 Spouts 和 Bolts,通过数据流(Stream)连接起来的图。一个 Storm 在集 群上运行一个 Topology 时,主要通过以下 3 个实体来完成 Topology 的执行工作:

(1). Worker(进程)

(2). Executor(线程)

(3). Task

27.1.3.1. Worker(1 个 worker 进程执行的是 1 个 topology 的子集)

1 个 worker 进程执行的是 1 个 topology 的子集(注:不会出现 1 个 worker 为多个 topology 服务)。1 个 worker 进程会启动 1 个或多个 executor 线程来执行 1 个 topology 的 component(spout 或 bolt)。因此,1 个运行中的 topology 就是由集群中多台物理机上的多个 worker 进程组成的。

27.1.3.2. Executor(executor 是 1 个被 worker 进程启动的单独线程)

executor 是 1 个被 worker 进程启动的单独线程。每个 executor 只会运行 1 个 topology 的 1 个 component(spout 或 bolt)的 task(注:task 可以是 1 个或多个,storm 默认是 1 个 component 只生成 1 个 task,executor 线程里会在每次循环里顺序调用所有 task 实例)。

27.1.3.3. Task(最终运行 spout 或 bolt 中代码的单元)

是最终运行 spout 或 bolt 中代码的单元(注:1 个 task 即为 spout 或 bolt 的 1 个实例, executor 线程在执行期间会调用该 task 的 nextTuple 或 execute 方法)。topology 启动后,1 个 component(spout 或 bolt)的 task 数目是固定不变的,但该 component 使用的 executor 线 程数可以动态调整(例如:1 个 executor 线程可以执行该 component 的 1 个或多个 task 实 例)。这意味着,对于 1 个 component 存在这样的条件:#threads<=#tasks(即:线程数小于 等于 task 数目)。默认情况下 task 的数目等于 executor 线程数目,即 1 个 executor 线程只运 行 1 个 task。

27.1.4. Storm Streaming Grouping

Storm 中最重要的抽象,应该就是 Stream grouping 了,它能够控制 Spot/Bolt 对应的 Task 以 什么样的方式来分发 Tuple,将 Tuple 发射到目的 Spot/Bolt 对应的 Task.

目前,Storm Streaming Grouping 支持如下几种类型:

27.1.4.1. huffle Grouping

随机分组,尽量均匀分布到下游 Bolt 中将流分组定义为混排。这种混排分组意味着来自 Spout 的 输入将混排,或随机分发给此 Bolt 中的任务。shuffle grouping 对各个 task 的 tuple 分配的比 较均匀。

27.1.4.2. Fields Grouping

按字段分组,按数据中 field 值进行分组;相同 field 值的 Tuple 被发送到相同的 Task 这种 grouping 机制保证相同 field 值的 tuple 会去同一个 task。

27.1.4.3. All grouping :广播

广播发送, 对于每一个 tuple 将会复制到每一个 bolt 中处理。

27.1.4.4. Global grouping

全局分组,Tuple 被分配到一个 Bolt 中的一个 Task,实现事务性的 Topology。Stream 中的所 有的 tuple 都会发送给同一个 bolt 任务处理,所有的 tuple 将会发送给拥有最小 task_id 的 bolt 任务处理。

27.1.4.5. None grouping :不分组

不关注并行处理负载均衡策略时使用该方式,目前等同于 shuffle grouping,另外 storm 将会把 bolt 任务和他的上游提供数据的任务安排在同一个线程下。

27.1.4.6. Direct grouping :直接分组 指定分组

由 tuple 的发射单元直接决定 tuple 将发射给那个 bolt,一般情况下是由接收 tuple 的 bolt 决定 接收哪个 bolt 发射的 Tuple。这是一种比较特别的分组方法,用这种分组意味着消息的发送者指 定由消息接收者的哪个 task 处理这个消息。 只有被声明为 Direct Stream 的消息流可以声明这种 分组方法。而且这种消息 tuple 必须使用 emitDirect 方法来发射。消息处理者可以通过 TopologyContext 来获取处理它的消息的 taskid (OutputCollector.emit 方法也会返回 taskid)


28. YARN

28.1.1. 概念

YARN 是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、 NodeManager(NM)、ApplicationMaster(AM)。其中,ResourceManager 负责所有资 源的监控、分配和管理; ApplicationMaster 负责每一个具体应用程序的调度和协调; NodeManager 负责每一个节点的维护。对于所有的 applications,RM 拥有绝对的控制权和对资 源的分配权。而每个 AM 则会和 RM 协商资源,同时和 NodeManager 通信来执行和监控 task。 几个模块之间的关系如图所示。

28.1.2. ResourceManager

1. ResourceManager 负责整个集群的资源管理和分配,是一个全局的资源管理系统。

2. NodeManager 以心跳的方式向 ResourceManager 汇报资源使用情况(目前主要是 CPU 和 内存的使用情况)。RM 只接受 NM 的资源回报信息,对于具体的资源处理则交给 NM 自己 处理。

3. YARN Scheduler 根据 application 的请求为其分配资源,不负责 application job 的监控、 追踪、运行状态反馈、启动等工作。

28.1.3. NodeManager

1. NodeManager 是每个节点上的资源和任务管理器,它是管理这台机器的代理,负责该节点 程序的运行,以及该节点资源的管理和监控。YARN集群每个节点都运行一个NodeManager。

2. NodeManager 定时向 ResourceManager 汇报本节点资源(CPU、内存)的使用情况和 Container 的运行状态。当 ResourceManager 宕机时 NodeManager 自动连接 RM 备用节 点。

3. NodeManager 接收并处理来自 ApplicationMaster 的 Container 启动、停止等各种请求。

28.1.4. ApplicationMaster

用户提交的每个应用程序均包含一个 ApplicationMaster,它可以运行在 ResourceManager 以外 的机器上。

1. 负责与 RM 调度器协商以获取资源(用 Container 表示)。

2. 将得到的任务进一步分配给内部的任务(资源的二次分配)。

3. 与 NM 通信以启动/停止任务。

4. 监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。

5. 当前 YARN 自带了两个 ApplicationMaster 实现,一个是用于演示 AM 编写方法的实例程序 DistributedShell,它可以申请一定数目的 Container 以并行运行一个 Shell 命令或者 Shell 脚本;另一个是运行 MapReduce 应用程序的 AM—MRAppMaster。

注:RM 只负责监控 AM,并在 AM 运行失败时候启动它。RM 不负责 AM 内部任务的容错,任务 的容错由 AM 完成。

28.1.5.YARN 运行流程

1. client 向 RM 提交应用程序,其中包括启动该应用的 ApplicationMaster 的必须信息,例如 ApplicationMaster 程序、启动 ApplicationMaster 的命令、用户程序等。

2. ResourceManager 启动一个 container 用于运行 ApplicationMaster。

3. 启动中的ApplicationMaster向ResourceManager注册自己,启动成功后与RM保持心跳。

4. ApplicationMaster 向 ResourceManager 发送请求,申请相应数目的 container。

5. ResourceManager 返回 ApplicationMaster 的申请的 containers 信息。申请成功的 container,由 ApplicationMaster 进行初始化。container 的启动信息初始化后,AM 与对 应的 NodeManager 通信,要求 NM 启动 container。AM 与 NM 保持心跳,从而对 NM 上 运行的任务进行监控和管理。

6. container 运行期间,ApplicationMaster 对 container 进行监控。container 通过 RPC 协议 向对应的 AM 汇报自己的进度和状态等信息。

7. 应用运行期间,client 直接与 AM 通信获取应用的状态、进度更新等信息。

8. 应用运行结束后,ApplicationMaster 向 ResourceManager 注销自己,并允许属于它的


container 被收回。

29. 机器学习

29.1.1. 决策树

29.1.2. 随机森林算法

29.1.3. 逻辑回归

29.1.4. SVM

29.1.5. 朴素贝叶斯

29.1.6. K 最近邻算法

29.1.7. K 均值算法

29.1.8. Adaboost 算法

29.1.9. 神经网络

29.1.10. 马尔可夫


Java核心知识点整理大全24-笔记-CSDN博客
往期快速传送门👆(在文章最后):

相关文章:

Java核心知识点整理大全26-笔记

目录 27. Storm 7.1.1. 概念 27.1.1. 集群架构 27.1.1.1. Nimbus&#xff08;master-代码分发给 Supervisor&#xff09; 27.1.1.2. Supervisor&#xff08;slave-管理 Worker 进程的启动和终止&#xff09; 27.1.1.3. Worker&#xff08;具体处理组件逻辑的进程&#xff…...

“上云”还是“下云”?探云计算的下一站未来!

引言 10 月 27 日&#xff0c;X&#xff08;原Twitter&#xff09;工程技术发布帖子称&#xff0c;在过去的一年里&#xff0c;技术团队优化了 X 的云服务使用方式&#xff0c;着手将更多工作负载迁往本地基础设施。这一转变使 X 每月的云成本降低了 60%。所有媒体、Blob 存储均…...

Linux中top命令输出日志分析?

以下是对输出的各部分的解释&#xff1a; 09:54:34&#xff1a;系统当前时间。up 161 days, 2:08&#xff1a;系统已经运行了161天2小时8分钟。5 users&#xff1a;有5个用户登录系统。load average: 0.13, 0.08, 0.05&#xff1a;系统的1分钟、5分钟、15分钟的平均负载。负载…...

执行栈和执行上下文

前端面试大全JavaScript执行栈和执行上下文 &#x1f31f;经典真题 &#x1f31f;执行上下文 &#x1f31f;栈数据结构 &#x1f31f;执行上下文生命周期 &#x1f31f;真题解答 &#x1f31f;总结 &#x1f31f;经典真题 谈谈你对 JavaScript 执行上下文栈理解 &#…...

7、单片机与W25Q128(FLASH)的通讯(SPI)实验(STM32F407)

SPI接口简介 SPI 是英语Serial Peripheral interface的缩写&#xff0c;顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。 SPI&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;并且在芯片的管脚上只占用四根…...

stream流和方法引用

1.Stream流 1.1体验Stream流【理解】 案例需求 按照下面的要求完成集合的创建和遍历 创建一个集合&#xff0c;存储多个字符串元素把集合中所有以"张"开头的元素存储到一个新的集合把"张"开头的集合中的长度为3的元素存储到一个新的集合遍历上一步得到的集…...

Redis——某马点评day01——短信登录

项目介绍 导入黑马点评项目 项目架构 基于Session实现登录 基本流程 实现发送短信验证码功能 controller层中 /*** 发送手机验证码*/PostMapping("code")public Result sendCode(RequestParam("phone") String phone, HttpSession session) {// 发送短信…...

AES加密技术:原理与应用

一、引言 随着信息技术的飞速发展&#xff0c;数据安全已成为越来越受到重视的领域。加密技术作为保障数据安全的重要手段&#xff0c;在信息安全领域发挥着举足轻重的作用。AES&#xff08;Advanced Encryption Standard&#xff09;作为一种对称加密算法&#xff0c;自1990年…...

Unity中PlayerPrefs在PC上存储位置总结

编辑器下和EXE存储位置是不同的&#xff0c;这也不难理解&#xff0c;是为了避免存储位置相同导致开发和测试冲突。 编辑器下位置&#xff1a;HKEY_CURRENT_USER\Software\Unity\UnityEditor\ExampleCompanyName\ExampleProductName EXE位置&#xff1a;HKEY_CURRENT_USER\Sof…...

消融实验:深度学习的关键分析工具

消融实验&#xff1a;深度学习的关键分析工具 在深度学习和机器学习领域&#xff0c;消融实验&#xff08;Ablation Study&#xff09;是一种重要的实验方法&#xff0c;用于理解和评估模型的各个组成部分对其整体性能的贡献。通过这种方法&#xff0c;研究人员可以更深入地了…...

Redis缓存——Spring Cache入门学习

Spring Cache 介绍 Spring Cache 是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要简单地加一个注解&#xff0c;就能实现缓存功能。 Spring Cache 提供了一层抽象&#xff0c;底层可以切换不同的缓存实现&#xff0c;例如&#xff1a; EHCacheCaffeineR…...

Python标准库copy【侯小啾python领航班系列(十五)】

Python标准库copy【侯小啾python领航班系列(十五)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…...

Android--Jetpack--Lifecycle详解

富贵本无根&#xff0c;尽从勤里得 一&#xff0c;定义 Lifecycle 是一个具备宿主生命周期感知能力的组件。它持有组件&#xff08;Activity/Fragment&#xff09;生命周期状态信息&#xff0c;并且允许其观察者监听宿主生命周期状态变化。 顾名思义&#xff0c;Lifecycle的主…...

LeetCode105.从前序和中序遍历序列构造二叉树

这道题看完题想了几分钟就想到大概的思路了&#xff0c;但是在写的时候有很多细节没注意出了很多问题&#xff0c;然后写了1个多小时&#xff0c;其实这道题挺简单的。 首先&#xff0c;最基本的知识&#xff0c;先序遍历是根左右&#xff0c;中序遍历是左根右&#xff0c;那么…...

flutter-一个可以输入的数字增减器

效果 参考文章 代码 在参考文章上边&#xff0c;主要是改了一下样式&#xff0c;逻辑也比较清楚&#xff0c;对左右两边添加增减方法。 我在此基础上加了_numcontroller 输入框的监听。 加了数字输入框的控制 keyboardType: TextInputType.number, //设置键盘为数字 inputF…...

抑郁症中西医治疗对比?

抑郁症是一种常见的心理障碍&#xff0c;治疗方法包括中医和西医两种。下面就抑郁症中西医治疗进行对比&#xff1a; 治疗方法&#xff1a;中医治疗抑郁症强调整体观念和辨证论治&#xff0c;通过调理身体各部分的功能&#xff0c;达到治疗抑郁症的目的。中医治疗抑郁症多采用天…...

012 OpenCV sobel边缘检测

目录 一、环境 二、soble原理介绍 三、源码实验 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、soble原理介绍 Sobel边缘检测是一种广泛应用于图像处理领域的边缘检测算法&#xff0c;它通过计算图像灰度函数在水平方向和垂直…...

【开源视频联动物联网平台】libmodbus 写一个modbus tcp客户端

libmodbus 是一个用于 Modbus 通信协议的 C 语言库&#xff0c;可以用来创建 Modbus TCP 客户端。以下是一个简单的示例代码&#xff0c;演示如何使用 libmodbus 创建一个 Modbus TCP 客户端。 首先&#xff0c;确保你已经安装了 libmodbus 库。你可以从 libmodbus 的官方网站…...

安装以及使用 stylepro_artistic 所遇问题解决

根据https://github.com/PaddlePaddle/PaddleHub/blob/develop/docs/docs_ch/get_start/windows_quickstart.md 安装 hub install stylepro_artistic1.0.1 出现ImportError: cannot import name ‘Constant’ from ‘paddle.fluid.initializer’&#xff0c;提示在File: "…...

【Rust】所有权的认识

所有权 所有权的认识移动&#xff0c;克隆&#xff0c;拷贝所有权与函数返回值与作用域 引用与借用可变引用悬垂引用&#xff08;Dangling References&#xff09; Slice类型 所有权的认识 所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制&#…...

中间件安全:Weblogic 漏洞.(使用工具可以利用多种类型漏洞)

中间件安全&#xff1a;Weblogic 漏洞.&#xff08;使用工具可以利用多种类型漏洞&#xff09; WebLogic 是美国 Oracle 公司出品的一个 application server&#xff0c;确切的说是一个基于 JAVA EE 架构的中间件&#xff0c;WebLogic 是用于开发、集成、部署和管理大型分布式…...

matlab操作方法(一)——向量及其操作

1.向量及其操作 matlab是英文Matrix Laboratory&#xff08;矩阵实验室&#xff09;的简称&#xff0c;是基于矩阵运算的操作环境。matlab中的所有数据都是以矩阵或多维数组的形式存储的。向量和标量是矩阵的两种特殊形式 向量是指单行或者单列的矩阵&#xff0c;它是构成矩阵…...

MicroPython标准库

MicroPython标准库 arraybinascii(二进制/ASCII转换)builtins – 内置函数和异常cmath – 复数的数学函数collections – 集合和容器类型errno – 系统错误代码gc – 控制垃圾收集器hashlib – 散列算法heapq – 堆队列算法io – 输入/输出流json – JSON 编码和解码math – 数…...

2023年产业数据价值化峰会暨数栖大会-核心PPT资料下载

一、峰会简介 本次大会由主论坛和3场分论坛组成&#xff0c;嘉宾阵容强大&#xff0c;内容丰富多彩。来自政企学界的百名专家从产学研用多种维度对企业数据管理、产业数据资源化建设等视角展开。大会围绕“产业数据价值化”为主题&#xff0c;秉持“让数据用起来”的使命&…...

深入理解 Vue 组件:构建优雅的前端应用

&#x1f342;引言&#xff1a; Vue.js 是一款流行的 JavaScript 框架&#xff0c;以其简单易用和高度灵活的特性而受到了广泛的欢迎。其中的一个重要概念就是组件&#xff0c;它使我们能够将用户界面划分为可重用的、独立的部分。本文将深入探讨 Vue 组件的概念、使用和最佳实…...

基于SpringBoot+Vue的前后端分离的房屋租赁系统2

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 开发过程中&#xff0…...

PHPExcel 导出Excel报错:PHPExcel_IOFactory::load()

背景 近期在做 excel文件数据导出时&#xff0c;遇到如下报错&#xff1a; iconv(): Detected an illegal character in input string场景&#xff1a;计划任务后台&#xff0c;分步导出 大数据 excel文件发现在加载文件时&#xff0c;会有报错 报错信息 如下&#xff1a; {&q…...

Jmeter-分布式压测(远程启动服务器,windows)

1 前提条件 JDK已部署&#xff0c;版本一致Jmeter已部署&#xff0c;版本一致多台服务器连接的同一网络(例如&#xff1a;同一wifi)防火墙处于关闭状态&#xff08;或者对应默认端口处于开放状态&#xff09;虚拟网络适配器都处于关闭状态查找到每一台服务器的IP 2 主服务器配…...

【C++】string类模拟实现过程中值得注意的点

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.有关const的使用 &#x…...

大数据湖项目建设方案:文档全文101页,附下载

关键词&#xff1a;大数据解决方案&#xff0c;数据湖解决方案&#xff0c;数据治理解决方案&#xff0c;数据中台解决方案 一、大数据湖建设思路 1、明确目标和定位&#xff1a;明确大数据湖的目标和定位是整个项目的基础&#xff0c;这可以帮助我们确定项目的内容、规模、所…...