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

【分布式知识】分布式对象存储组件-Minio

文章目录

    • 什么是minio
      • 核心特点:
      • 使用场景:
      • 开发者工具:
      • 社区和支持:
    • 核心概念
      • 什么是对象存储?
      • MinIO 如何确定对对象的访问权限?
      • 我可以在存储桶内按文件夹结构组织对象吗?
      • 如何备份和恢复 MinIO 上的对象?
      • MinIO 提供哪些工具来根据访问速度和频率管理对象?
      • MinIO 如何保护对象免遭意外覆盖或删除?
        • 锁定
        • 版本控制
    • 架构解析
      • 分布式架构
      • 存储机制
      • 高可用性和扩展性
      • 兼容性
      • 安全性
      • 管理和监控
    • minio扩容
      • 扩容前的准备
      • 添加新节点
      • 扩展存储
      • 数据迁移
      • 测试和验证
      • 示例命令
        • 在新节点上安装并启动MinIO服务:
        • 更新集群配置(如果有需要):
        • 使用`mc`工具测试数据迁移:
      • 注意事项
    • 命令行
      • 基本配置
        • 设置环境变量:
      • 基本命令
        • 连接到MinIO服务器:
        • 列出所有存储桶:
        • 创建新的存储桶:
        • 删除存储桶:
        • 切换当前工作目录到指定存储桶:
      • 文件操作
        • 上传文件到存储桶:
        • 下载文件到本地:
        • 复制存储桶内的文件:
        • 删除存储桶内的文件:
      • 目录操作
        • 上传整个目录到存储桶:
        • 下载整个目录到本地:
        • 删除存储桶内的目录:
      • 更多命令
        • 列出存储桶中的所有对象:
        • 查看特定对象的信息:
        • 设置对象的元数据:
        • 获取对象的元数据:
        • 生成共享链接:
        • 启动MinIO服务器(如果安装了MinIO服务端):
    • 相关文献

什么是minio

MinIO是一个开源的对象存储服务器,它旨在提供高性能、高可扩展性的存储解决方案。以下是关于MinIO的一些详细介绍:

核心特点:

  1. 高性能:MinIO设计用于提供高速的数据访问速度,在标准硬件上也能达到非常高的吞吐量。
  2. 云原生:MinIO支持Kubernetes,并且适合在云环境中运行,特别是对于微服务架构的应用。
  3. 可扩展性:MinIO支持水平扩展,可以通过增加更多的节点来扩展存储容量和性能。
  4. API兼容性:MinIO与Amazon S3 API兼容,这使得现有的S3应用程序可以轻松迁移或与MinIO集成。
  5. 跨平台:MinIO可以在Linux、Windows和macOS等多个操作系统上运行。
  6. 安全性:MinIO支持加密、身份验证和授权等功能,确保数据的安全性。

使用场景:

  • 大数据存储:适合存储海量的数据,如日志文件、分析数据等。
  • 备份与归档:可以用来备份重要的数据,同时也支持长期的数据归档。
  • Web应用:可以作为Web应用的静态资源存储库,如图片、视频等。
  • 容器化应用:非常适合云原生应用的数据持久化需求。
  • IoT应用:可以存储从物联网设备收集的数据。

开发者工具:

  • MinIO支持多种编程语言的SDK,包括Java、Python、Go等,方便开发者快速集成MinIO到自己的应用中。
  • 它还提供了命令行界面(CLI),使得终端用户可以方便地管理和操作存储在MinIO中的对象。

社区和支持:

  • MinIO有一个活跃的开源社区,提供了丰富的文档和技术支持,帮助用户更好地理解和使用这个工具。
    由于MinIO的这些特点,它成为了许多组织和个人在构建需要高性能、可扩展存储解决方案的应用和服务时的选择。

核心概念

什么是对象存储?

对象是二进制数据,有时也称为二进制大对象 (BLOB)。Blob 可以是图像、音频文件、电子表格,甚至是二进制可执行代码。MinIO 等对象存储平台提供专用工具和功能来存储、检索和搜索 Blob 。

MinIO 对象存储使用存储桶来组织对象。存储桶类似于文件系统中的文件夹或目录,每个存储桶可以容纳任意数量的对象。MinIO 存储桶提供与 AWS S3 存储桶相同的功能。

例如,假设有一个托管网络博客的应用程序。该应用程序需要存储各种 blob,包括视频和图像等丰富的多媒体。

MinIO 通过功能支持多级嵌套目录,prefixing 以支持最动态的对象存储工作负载。

MinIO 如何确定对对象的访问权限?

MinIO 要求客户端对每个新操作执行身份验证和授权。 因此,身份和访问管理 (IAM)是 MinIO 配置的关键组件。

身份验证可验证连接客户端的身份。MinIO 要求客户端使用AWS 签名版本 4 协议进行身份验证,并支持已弃用的签名版本 2 协议。具体来说,客户端必须提供有效的访问密钥和密钥才能访问任何 S3 或 MinIO 管理 API,例如PUT、GET和DELETE操作。

然后,MinIO 检查经过身份验证的用户或客户端是否有权在部署上执行操作或使用资源。MinIO 使用基于策略的访问控制 (PBAC),其中每个策略描述一个或多个规则,这些规则概述了用户或用户组的权限。MinIO在创建策略时支持特定于 S3 的操作和条件。

默认情况下,MinIO拒绝访问用户分配或继承的策略中未明确引用的操作或资源。

MinIO 提供了访问管理功能作为软件的一部分。或者,您可以将 MinIO 配置为使用Active Directory/LDAP或OpenID/OIDC与多个外部 IAM 提供程序之一进行身份验证。

MinIO 如何保护数据安全?
MinIO 支持在驱动器上对对象进行编码(静态加密)以及在从一个位置转换到另一个位置时进行编码(传输中加密或“动态加密”)的方法。启用后,MinIO 会利用服务器端加密以加密状态写入对象。要检索和读取加密对象,用户必须具有适当的访问权限并提供对象的解密密钥。

MinIO 支持传输层安全性(TLS) 版本 1.2 和 1.3 加密对象。TLS 取代了以前使用的安全套接字层 (SSL) 方法,该方法现已弃用。由互联网工程任务组 (IETF) 维护的 TLS 标准提供了互联网通信用于支持加密、身份验证和数据完整性的标准。

验证用户和验证对象访问权限的过程称为TLS 握手。验证完成后,TLS 提供密码来加密和解密从服务器到请求客户端的信息传输。

MinIO 支持多种服务器端加密方法。

我可以在存储桶内按文件夹结构组织对象吗?

MinIO 为每个对象使用前缀方法,模仿传统文件系统的文件夹结构。前缀涉及在对象名称前面添加固定字符串。

使用前缀,您无需手动创建文件夹和子文件夹。相反,MinIO 会查找/对象名称前缀中的字符。每个字符都/表示一个新文件夹或子文件夹。

MinIO 使用对象的名称和前缀自动生成一系列用于存储对象的文件夹和子文件夹。当你在多个对象上使用相同的前缀字符串时,MinIO 会将它们识别为相似或分组的对象。

例如,名为 的对象/articles/john.doe/2022-01-02-MinIO-Object-Storage.md最终会存放在articles存储桶中标有 的文件夹中john.doe。

MinIO 对象存储可能类似于以下结构,具有三个存储桶。MinIO 会articles根据这些对象的前缀自动在存储桶中生成两个文件夹。

/ #root
/images/2022-01-02-MinIO-Diagram.png2022-01-03-MinIO-Advanced-Deployment.pngMinIO-Logo.png
/videos/2022-01-04-MinIO-Interview.mp4
/articles//john.doe/2022-01-02-MinIO-Object-Storage.md2022-01-02-MinIO-Object-Storage-comments.json/jane.doe/2022-01-03-MinIO-Advanced-Deployment.png2022-01-02-MinIO-Advanced-Deployment-comments.json2022-01-04-MinIO-Interview.md

MinIO 本身不限制任何特定前缀可以包含的对象数量。但是,硬件和网络条件可能会因前缀较大而对性能产生影响。

使用中等或预算有限的硬件进行部署时,应将其工作负载设计为以每个前缀 10,000 个对象为基准。根据基准测试和对实际工作负载的监控将此目标提高到硬件可以有效处理的水平。

使用高性能或企业级硬件的部署通常可以处理具有数百万个或更多对象的前缀。

MinIO SUBNET企业账户可以利用年度架构审查作为部署和维护策略的一部分,以确保依赖 MinIO 的项目的长期性能和成功。

有关限制前缀内容的好处的更深入讨论,请参阅有关优化 S3 性能的文章。

如何备份和恢复 MinIO 上的对象?

MinIO 提供两种类型的复制,用于将对象、其版本及其元数据从一个位置复制到另一个位置。您可以在存储桶级别或站点级别配置复制。

存储桶级别复制既可以作为单向、主动-被动复制(例如用于存档目的),也可以作为双向、主动-主动复制,以使两个存储桶彼此保持同步。

站点级复制功能作为双向、主动-主动复制,以使多个数据位置(例如不同的地理数据中心)彼此同步。

除了复制之外,MinIO 还提供镜像服务。 仅将实际对象复制到任何其他 S3 兼容数据存储,包括其他 MinIO 存储。但是,版本和元数据不会使用该命令备份。mc mirrormc mirror

独家访问驱动器
MinIO需要 对用于对象存储的驱动器或卷具有独占访问权限。任何其他流程、软件、脚本或人员都不得直接对提供给 MinIO 的驱动器或卷或 MinIO 放置在其上的对象或文件执行任何操作。
除非得到 MinIO 工程部门的指示,否则请勿使用脚本或工具直接修改、删除或移动所提供驱动器上的任何数据分片、奇偶校验分片或元数据文件,包括从一个驱动器或节点移动到另一个驱动器或节点。此类操作很可能会导致大面积损坏和数据丢失,超出 MinIO 的修复能力。

MinIO 提供哪些工具来根据访问速度和频率管理对象?

分层规则允许将经常访问的对象存储在热存储或温存储中,这通常更昂贵但提供更好的性能。

访问频率较低的对象可以移至冷存储。冷存储通常会以较低的性能换取较低的价格。

MinIO 如何保护对象免遭意外覆盖或删除?

锁定

锁定是一种一次写入多次读取 (WORM) 机制,可防止删除或修改对象。锁定后,MinIO 会无限期地保留对象,直到有人移除锁定或锁定过期。

MinIO 提供:

  • 法律保留锁,供所有用户无限期保留

  • 对所有用户实施基于时间的限制

  • 为非特权用户制定基于时间的锁规则

版本控制

默认情况下,使用相同名称(包括前缀)写入的对象会覆盖现有的同名对象。MinIO 提供了一个配置选项来创建启用了版本控制的存储桶。 版本控制可让您访问随时间变化的唯一命名对象的各个迭代。启用后,MinIO 会将变异对象写入与原始对象不同的版本,从而允许访问原始对象和更新的已更改对象。

MinIO 存储桶上的附加配置决定了存储桶中每个对象的旧版本保留多长时间。

架构解析

MinIO的架构设计是为了实现高性能、可扩展性以及简单易用性。以下是对MinIO架构的一些关键特性的解析:

分布式架构

deploy-arc

  • 无中心化设计:MinIO采用了一种去中心化的架构,其中对象数据被分散存储在集群的不同节点上。这种设计避免了单点故障,并提高了系统的可靠性。
  • 负载均衡:MinIO可以使用Web负载均衡器或DNS轮询(DNS round-robin)来平衡请求负载,从而提高系统的整体性能。

存储机制

minio-bucket

  • Bucket和Object:在MinIO中,数据被组织成Buckets(桶),每个Bucket类似于传统文件系统中的目录。Bucket中的数据则被进一步划分为Objects(对象),每个对象都有一个唯一的键来标识。
  • 本地文件系统:每个Bucket在本地文件系统中表示为一个目录,而对象则是该目录下的文件。这种设计简化了数据的管理和存储。

高可用性和扩展性

  • 水平扩展:MinIO支持水平扩展,即通过增加更多的节点来增加存储容量和性能。这种扩展性使得MinIO能够处理大量数据和高并发请求。
  • 多租户支持:MinIO支持多租户架构,允许多个用户或服务共享相同的存储基础设施,同时保持数据隔离。

兼容性

  • S3兼容API:MinIO完全兼容Amazon S3 API,这使得现有的S3应用程序可以直接与MinIO交互,无需修改代码。

安全性

  • 认证和授权:MinIO支持多种认证机制,如IAM(Identity and Access Management)用户认证,以及通过证书或其他方式对数据进行加密传输。
  • 数据加密:支持在传输过程中和静止状态下的数据加密,以保证数据的安全性。

管理和监控

  • 命令行工具(CLI):提供了强大的命令行工具,使得用户可以方便地管理存储在MinIO中的对象。
  • API和SDKs:除了S3兼容的API之外,MinIO还提供了多种编程语言的SDK,以便开发者能够更容易地集成MinIO到他们的应用中。
  • 可视化界面:虽然MinIO本身主要是一个命令行和API驱动的服务,但它也支持通过第三方工具或插件提供图形化的管理界面。

minio扩容

MinIO的设计允许通过水平扩展来增加存储容量和提升性能。扩容通常意味着添加更多的节点到现有的MinIO集群中。以下是进行MinIO扩容的一般步骤:

扩容前的准备

  1. 评估需求:确定需要增加多少存储容量或者提高多少性能。
  2. 规划布局:根据需求确定需要添加的新节点数量以及它们将如何分配存储空间。
  3. 备份数据:在进行任何可能影响数据的操作之前,最好先备份数据。

添加新节点

  1. 安装MinIO:在新的服务器上安装MinIO。确保新服务器上的MinIO版本与现有集群版本相匹配。
  2. 配置新节点:设置新节点上的MinIO服务,包括配置端点、访问密钥和秘密密钥等信息。

扩展存储

  1. 调整存储路径:将新节点上的存储路径加入到MinIO集群中。如果是单机模式,只需确保有足够的磁盘空间;如果是分布式模式,则需要将新的磁盘或服务器加入集群。
  2. 更新集群配置:如果使用的是MinIO的分布式模式,那么需要更新集群配置来反映新的节点信息。

数据迁移

  1. 手动迁移数据:如果是在同一个数据中心内,可以通过直接复制文件的方式将数据迁移到新的存储位置。
  2. 使用工具迁移数据:可以使用mc命令行工具或者通过API调用来迁移数据。

测试和验证

  1. 测试新配置:确保所有节点都能正常工作,并且数据可以正确读写。
  2. 监控性能:检查扩容后的集群是否达到了预期的性能指标,如IOPS、吞吐量等。

示例命令

假设你要在一个已经存在的MinIO集群中添加一个新的节点,可以通过如下步骤:

在新节点上安装并启动MinIO服务:
minio server /path/to/new/data/folder --address :9000 --config-dir /etc/minio

这里--address :9000指定了监听端口,--config-dir /etc/minio指定了配置目录。

更新集群配置(如果有需要):

如果使用的是分布式模式,可能需要编辑集群配置文件,将新节点的信息添加进去。

使用mc工具测试数据迁移:
mc cp -r /path/to/local/folder miniocloud/bucket/newpath

这里miniocloud是一个预设的别名,指向你的MinIO集群。

注意事项

  • 一致性检查:扩容后,建议进行一致性检查,确保所有副本都同步并且数据完整。
  • 监控工具:使用监控工具来持续监控集群的健康状况和性能。
  • 安全性:确保新加入的节点遵循相同的安全策略,如身份验证、数据加密等。

扩容MinIO集群是一项技术要求较高的操作,尤其是在生产环境中。务必谨慎行事,并确保有详细的计划和应急措施。如果不确定如何操作,可以参考MinIO官方文档或寻求专业的技术支持。

命令行

MinIO提供了命令行界面(CLI),使得用户可以方便地执行各种对象存储相关的任务,如创建和删除存储桶(buckets)、上传和下载对象等。下面是MinIO CLI的一些常用命令及其简要说明。

基本配置

首先,你需要配置MinIO客户端以连接到你的MinIO服务器。你可以设置环境变量或者直接在命令行中指定端点、访问密钥和秘密密钥。

设置环境变量:
export MINIO_ACCESS_KEY=your_access_key
export MINIO_SECRET_KEY=your_secret_key
export MINIO_ENDPOINT=minio_server_endpoint:port

基本命令

连接到MinIO服务器:
mc alias set myminio http://minio_server_endpoint:port your_access_key your_secret_key
列出所有存储桶:
mc ls myminio
创建新的存储桶:
mc mb myminio/mybucket
删除存储桶:
mc rb myminio/mybucket
切换当前工作目录到指定存储桶:
mc cd myminio/mybucket

文件操作

上传文件到存储桶:
mc cp /path/to/local/file myminio/mybucket/remote/path
下载文件到本地:
mc cp myminio/mybucket/remote/path /path/to/local/directory
复制存储桶内的文件:
mc cp myminio/mybucket/oldpath myminio/mybucket/newpath
删除存储桶内的文件:
mc rm myminio/mybucket/path/to/object

目录操作

上传整个目录到存储桶:
mc cp -r /path/to/local/directory myminio/mybucket/remote/path
下载整个目录到本地:
mc cp -r myminio/mybucket/remote/path /path/to/local/directory
删除存储桶内的目录:
mc rm -r myminio/mybucket/path/to/directory

更多命令

列出存储桶中的所有对象:
mc ls myminio/mybucket
查看特定对象的信息:
mc stat myminio/mybucket/path/to/object
设置对象的元数据:
mc setmeta myminio/mybucket/path/to/object --header "X-Amz-Meta-Custom-Header: custom value"
获取对象的元数据:
mc getmeta myminio/mybucket/path/to/object
生成共享链接:
mc presign myminio/mybucket/path/to/object
启动MinIO服务器(如果安装了MinIO服务端):
minio server /path/to/data/folder --address :9000

以上是一些基本的MinIO CLI命令示例。通过这些命令,你可以执行大部分日常的对象存储操作。如果你需要更详细的功能介绍或者有特定的需求,建议查阅官方文档获取最新的命令列表和参数选项。

相关文献

Mino对象存储系统官网

相关文章:

【分布式知识】分布式对象存储组件-Minio

文章目录 什么是minio核心特点:使用场景:开发者工具:社区和支持: 核心概念什么是对象存储?MinIO 如何确定对对象的访问权限?我可以在存储桶内按文件夹结构组织对象吗?如何备份和恢复 MinIO 上的…...

跨平台开发支付组件,实现支付宝支付

效果图: custom-payment : 在生成预付订单之后页面中需要弹出一个弹层,弹层中展示的内容为支付方式(渠道),由用户选择一种支付方式进行支付。 该弹层组件是以扩展组件 uni-popup 为核心的,关于…...

API 接口:为电商行业高效发展注入强劲动力

一、动力之源:API 接口在电商中的角色剖析 在电商行业的广袤版图中,API 接口宛如一台强劲的发动机,是推动其高效发展的核心动力来源。它不再仅仅是一个技术工具,而是成为了连接电商各个环节的 “神经系统”,使得信息、…...

Golang的跨平台开发

Golang的跨平台开发 一、Golang跨平台开发概述 语言是一种开源的编程语言,由Google开发,广泛应用于云计算和网络编程领域。Golang具有并发性好、性能优异、内存管理自动化等特点,因此备受开发者青睐。其中,Golang的跨平台特性使得…...

txt数据转为pdf格式并使用base64解密输出

使用该方法请注意&#xff1a;因为此方法使用了base64解密&#xff0c;需要保证txt中的数据首先用了base64加密&#xff0c;如果只是普通的二进制数据&#xff0c;该方法并不适用 第一步 <dependency><groupId>org.apache.pdfbox</groupId><artifactId&…...

鸿蒙开发-状态+判断+循环

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;鸿蒙开发篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来鸿蒙开发篇专栏内容:鸿蒙开发-状态判断循环 目录 1.状态1原始类型 2.引用类型 2.判断 3.循环 1.基本使用…...

基于SSM网上招投标管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;招标者管理&#xff0c;专家管理&#xff0c;项目分类管理&#xff0c;招标项目管理&#xff0c;系统管理 前台账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0…...

「C/C++」C++ 设计模式 之 单例模式(Singleton)

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

WPF的行为(Behavior)

WPF&#xff08;Windows Presentation Foundation&#xff09;是微软.NET框架中用于构建Windows客户端应用程序的UI框架。它提供了一种声明性的方式来定义用户界面&#xff0c;并且支持MVVM&#xff08;Model-View-ViewModel&#xff09;设计模式。 在WPF中&#xff0c;“行为…...

SpringBoot框架:闲一品交易平台的新突破

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;闲一品交易平台当然也不能排除在外。闲一品交易平台是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&…...

关于AI绘画 | Stable Diffusion 技术专栏推荐文章

AI绘画 | Stable Diffusion 技术专栏推荐文章 引言 随着人工智能技术的发展&#xff0c;AI绘画逐渐成为艺术创作的新潮流。在众多的AI绘画工具中&#xff0c;Stable Diffusion因其强大的功能和易用性受到了广泛的关注。本文将详细介绍由“泰山AI”创建的技术专栏“AI绘画 | S…...

Oracle 第13章:事务处理

在数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;事务处理是一个非常重要的概念&#xff0c;它确保了数据的一致性和可靠性。下面我将解释事务的概念与特性&#xff0c;并讨论如何进行事务管理。 事务的概念与特性 事务是指作为一个工作单元的一组有序的SQL操作。…...

String的长度有限,而我对你的思念却无限延伸

公主请阅 1. 为什么学习string类&#xff1f;2. string类的常用接口2.1 string类对象的常见构造2.1.1 string 2.2 operator[]2.3 迭代器2.4 auto自动推导数据类型2.5 范围for2.6 迭代器第二层2.7 size和length获取字符串的长度2.8 max_size 获取这个字符串能设置的最大长度2.9 …...

二叉树的后序遍历

给你一棵二叉树的根节点 root &#xff0c;返回其节点值的 后序遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[3,2,1] 解释&#xff1a; 示例 2&#xff1a; 输入&#xff1a;root [1,2,3,4,5,null,8,null,null,6,7,9] 输出&#xf…...

Nvidia未来的Blackwell Ultra GPU将更名为B300系列

据TrendForce报道&#xff0c;英伟达&#xff08;Nvidia&#xff09;计划将其Blackwell Ultra产品线重新命名为B300系列&#xff0c;以更好地与即将推出的B100和B200产品进行区分。Blackwell Ultra系列将是一个具有更高性能的升级版本。但据报道&#xff0c;这种升级后的内存配…...

BUUCTF靶场Misc练习

在BUUCTF中&#xff0c;你需要留意各种关于涉及 flag{ } 的信息。只要找的到flag&#xff0c;你就算成功。本文记录我刷BUUCTF的Misc类方法和个人感悟。 Misc第一题 签到 题解在题目中&#xff0c;如图所示 flag是 flag{buu_ctf} 第二题 &#xff08;题目如图所示&#xff…...

ChatGPT、Python和OpenCV支持下的空天地遥感数据识别与计算——从0基础到15个案例实战

从无人机监测农田到卫星数据支持气候研究&#xff0c;空天地遥感数据正以前所未有的方式为科研和商业带来深刻变革。然而&#xff0c;对于许多专业人士而言&#xff0c;如何高效地处理、分析和应用遥感数据仍是一个充满挑战的课题。本教程应运而生&#xff0c;致力于为您搭建一…...

Flume采集Kafka数据到Hive

版本&#xff1a; Kafka&#xff1a;2.4.1 Flume&#xff1a;1.9.0 Hive&#xff1a;3.1.0 Kafka主题准备&#xff1a; Hive表准备&#xff1a;确保hive表为&#xff1a;分区分桶、orc存储、开启事务 Flume准备&#xff1a; 配置flume文件&#xff1a; /opt/datasophon/flume-1…...

大语言模型训练与推理模型构建源码解读(huggingface)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、llama训练模型构建源码解读1、模型构建代码(自己搭建)2、训练模型3、模型调用方法4、训练模型init方法(class LlamaForCausalLM(LlamaPreTrainedModel))5、训练模型forward方法(class Llam…...

第三十三篇:TCP协议如何避免/减少网络拥塞,TCP系列八

一、流量控制 一般来说&#xff0c;我们总是希望数据传输得更快一些&#xff0c;但是如果发送方把数据发送得太快&#xff0c;接收方可能来不及接收&#xff0c;造成数据的丢失&#xff0c;数据重发&#xff0c;造成网络资源的浪费甚至网络拥塞。所谓的流量控制&#xff08;fl…...

并发编程(2)——线程管控

目录 二、day2 1. 线程管控 1.1 归属权转移 1.2 joining_thread 1.2.1 如何使用 joining_thread 1.3 std::jthread 1.3.1 零开销原则 1.3.2 线程停止 1.4 容器管理线程对象 1.4.1 使用容器 1.4.2 如何选择线程运行数量 1.5 线程id 二、day2 今天学习如何管理线程&a…...

【数据仓库】

数据仓库&#xff1a;概念、架构与应用 目录 什么是数据仓库数据仓库的特点数据仓库的架构 3.1 数据源层3.2 数据集成层&#xff08;ETL&#xff09;3.3 数据存储层3.4 数据展示与应用层 数据仓库的建模方法 4.1 星型模型4.2 雪花模型4.3 星座模型 数据仓库与数据库的区别数据…...

计算机毕业设计——ssm基于HTML5的互动游戏新闻网站的设计与实现录像演示2021

作者&#xff1a;程序媛9688开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等。 &#x1f31f;文末获取源码数据库&#x1f31f;感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xff0…...

ubuntu上申请Let‘s Encrypt HTTPS 证书

Ubuntu 16.04及以上版本通常自带Snapd&#xff0c;如果你的系统还没有安装&#xff0c;可以通过以下命令安装&#xff1a; 安装Certbot# 使用Snap安装Certbot&#xff0c;确保你获得的是最新版本&#xff1a; bash sudo snap install --classic certbot准备Certbot命令# 确保C…...

解决VMware虚拟机的字体过小问题

前言&#xff1a; &#xff08;1&#xff09;先装VMware VMware17Pro虚拟机安装教程(超详细)-CSDN博客 &#xff08;2&#xff09;通过清华等镜像网站安装好Ubuntu镜像&#xff0c;下面贴上链接 教程虚拟机配置我没有做&#xff0c;因为学校给了现成的虚拟机~~大家需要的自己…...

java-web-day6-下-知识点小结

JDBC JDBC --是sun公司定义的一套操作所有关系型数据库的规范, 也就是接口api 数据库驱动 --是各个数据库厂家根据JDBC规范的具体实现, 例如mysql的驱动依赖 Lombok 简介 Lombok是一个实用的java类库, 通过注解的方式自动生成构造器, getter/setter, equals, hashcode, toStr…...

Cisco Packet Tracer 8.0 路由器静态路由配置

文章目录 静态路由简介一、定义与特点二、配置与命令三、优点与缺点四、应用场景 一&#xff0c;搭建拓扑图二&#xff0c;配置pc IP地址三&#xff0c;pc0 ping pc1 timeout四&#xff0c;配置路由器Router0五&#xff0c;配置路由器Router1六&#xff0c;测试 静态路由简介 …...

Unity3D学习FPS游戏(3)玩家第一人称视角转动和移动

前言&#xff1a;上一篇实现了角色简单的移动控制&#xff0c;但是实际游戏中玩家的视角是可以转动的&#xff0c;并根据转动后视角调整移动正前方。本篇实现玩家第一人称视角转动和移动&#xff0c;觉得有帮助的话可以点赞收藏支持一下&#xff01; 玩家第一人称视角 修复小问…...

引领数字未来:通过企业架构推动数字化转型的策略与实践

在全球经济迅速数字化的背景下&#xff0c;企业正面临日益复杂的挑战。为了保持竞争优势&#xff0c;企业必须迅速调整其业务模式&#xff0c;采用先进的技术&#xff0c;推动业务创新。企业架构&#xff08;EA&#xff09;作为企业转型的战略工具&#xff0c;在这一过程中发挥…...

计算机毕业设计Python+大模型恶意木马流量检测与分类 恶意流量监测 随机森林模型 深度学习 机器学习 数据可视化 大数据毕业设计 信息安全 网络安全

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; Python大模型恶意木马流量检…...

网络服务商能删除网站/seo兼职接单平台

服务器电源管理系统SPM(Server Power Management)随着信息设备的进一步集中&#xff0c;更多的数据中心被建立。新一代数据中心对供电系统的可靠性及可管理性要求越来越高。IT用户需要对信息设备的供电系统进行更可靠与更灵活的配电、更精细化的管理、更准确的成本消耗等。艾默…...

网站设计风格的关键词/近几年的网络营销案例

LINUX指令认识 使用XShell远程登录LINUx 查看Linux的ip ifconfig 1.ls[选项][目录文件] 对于目录&#xff0c;列出目录下所以子目录与文件。对于文件&#xff0c;列出文件名以及其他信息 -a 列出目录下的所有文件&#xff0c;包括以 . 开头的隐含文件。 -d 将目录象文件一样显示…...

注册公司去哪个网站/今日刚刚发生的重大新闻

前言 众所周知&#xff0c;Xamarin应该是.net下的跨平台开发工具。2016年之前还处于收费状态&#xff0c;后被微软收购后开源。但似乎有个现象&#xff0c;开源后的Xamarin发展似乎有些停滞&#xff0c;而且维护Xamarin的团队又很固执不愿变通。社区多次建议UI层应该统一绘图引…...

中企动力科技股份有限公司销售/互联网优化

1. Class类的使用 1.1 class的获取有三种方式 F fnew F();//方法一 任何一个类都有一个隐含的静态成员变量classClass c1F.class;//方法二 已经知道该类的对象通过getClass方法Class c2f.getClass();System.out.println(c1c2); //true//方法三 Class.forName()方…...

推广目标包括什么/seo建站工具

神州数码客户端常见故障自查一、 客户端认证成功前故障1. 接上网线后网卡灯不亮。(确定自己电脑网卡带灯。注&#xff1a;测试期间最好是不要接交换机&#xff0c;直接接墙上端口)参考方案&#xff1a;A、更换网线&#xff1b;B、如确认是端口故障&#xff0c;则请致电网络中心…...

9e做网站/公司网站建设服务机构

Forward指令是Jsp动作指令之一&#xff0c;可以用于将页面响应转发到另外的页面。既可以转发到静态页面&#xff0c;也可以转发到动态页面。 就像表单参数的转发一样&#xff0c;本来没什么好说&#xff0c;但是有几个特性还是要注意一下的。用一个例子就能够完全说明这个问题…...