news 2026/4/15 14:16:27

大数据领域 HDFS 与其他存储系统的对比分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大数据领域 HDFS 与其他存储系统的对比分析

大数据领域 HDFS 与其他存储系统的对比分析

关键词:HDFS、分布式存储系统、对比分析、对象存储、块存储、数据湖、云计算存储

摘要:本文深入分析分布式文件系统 HDFS(Hadoop Distributed File System)与其他主流存储系统(包括分布式块存储、对象存储、关系型数据库、数据湖存储等)的技术架构、核心原理、适用场景及性能特征。通过数学模型、代码实现和实际案例,对比不同存储系统在数据组织、访问模式、扩展性、容错性等方面的差异,为数据架构设计提供决策参考。文章涵盖从基础概念到前沿趋势的完整技术体系,适合数据工程师、架构师及相关技术从业者深入理解大数据存储选型的核心逻辑。

1. 背景介绍

1.1 目的和范围

在大数据时代,数据规模呈指数级增长,数据类型从结构化扩展到非结构化、半结构化,存储系统的选择直接影响数据处理效率、成本和可靠性。HDFS 作为 Hadoop 生态的核心组件,是早期分布式存储的标杆,但随着云计算、数据湖、湖仓一体等技术的发展,对象存储(如 S3)、分布式块存储(如 Ceph)、数据湖存储(如 Delta Lake)等新型系统不断涌现。
本文聚焦以下核心问题:

  • HDFS 的技术架构如何支持大规模数据存储?
  • 与对象存储、块存储相比,HDFS 的核心优势和局限性是什么?
  • 不同存储系统在数据处理流水线(ETL/ELT、实时分析、机器学习)中的适用场景如何划分?
  • 如何根据业务需求(吞吐量、IOPS、成本、数据一致性)选择存储系统?

1.2 预期读者

  • 大数据开发工程师:理解 HDFS 与其他存储系统的集成方式
  • 数据架构师:掌握存储系统选型的核心技术指标
  • 云计算从业者:对比公有云存储服务与自建 HDFS 的优劣
  • 高校相关专业学生:建立分布式存储系统的知识体系

1.3 术语表

1.3.1 核心术语定义
  • HDFS:基于 Java 的分布式文件系统,设计用于运行在通用硬件上,支持大规模数据集的高吞吐量访问,采用主从架构(NameNode+DataNode)。
  • 对象存储:按对象(Object)存储数据,每个对象包含数据、元数据和唯一标识符,支持无限扩展,典型代表 S3、OSS。
  • 分布式块存储:将数据划分为固定大小的块(Block),支持随机访问,提供块级别的存储接口,如 Ceph Block Device、AWS EBS。
  • 数据湖:集中存储结构化、半结构化、非结构化数据的系统,支持多种数据处理框架,如 Hudi、Delta Lake、Iceberg。
  • ACID:数据库事务的四个特性(原子性、一致性、隔离性、持久性),对象存储和 HDFS 通常不严格支持 ACID,而关系型数据库完全支持。
1.3.2 相关概念解释
  • 最终一致性:分布式系统中数据更新后,不同节点返回的数据可能存在短暂不一致,但最终会达成一致,常见于对象存储。
  • 强一致性:数据更新后,所有节点立即返回最新数据,HDFS 在文件关闭后保证强一致性,写入时支持管道式强一致性。
  • 分层存储:根据数据访问频率将数据存储在不同介质(内存、SSD、HDD、磁带),降低存储成本,HDFS 3.0 引入 EC(纠删码)支持分层。
1.3.3 缩略词列表
缩写全称
NNNameNode(HDFS 主节点)
DNDataNode(HDFS 数据节点)
S3Simple Storage Service(AWS)
OSSObject Storage Service(阿里云)
ECErasure Coding(纠删码)
POSIX可移植操作系统接口标准

2. 核心概念与联系

2.1 分布式存储系统分类与架构对比

2.1.1 存储模型分层

应用层

访问接口

文件接口(HDFS、NFS)

块接口(EBS、Ceph Block)

对象接口(S3、OSS)

文件元数据管理

块元数据管理

对象元数据管理

F/G/H

数据存储层(本地/分布式)

2.1.2 HDFS 架构解析

HDFS 采用主从架构,核心组件包括:

  1. NameNode:管理文件系统元数据(目录树、文件块映射、访问控制),单点故障问题通过QJM(Quorum Journal Manager)NFS 共享存储解决(HA 高可用架构)。
  2. DataNode:存储实际数据块,定期向 NameNode 汇报块信息,支持数据读写和副本复制。
  3. Client:提供文件访问接口,支持数据分块(默认 128MB)、副本策略(默认 3 副本)和流水线写入。

HDFS 架构示意图

+----------------+ | NameNode | (元数据管理) +----------------+ ↑ ↓ +------------+ ↑ ↓ +------------+ | Client | ─┼─ | Client | +------------+ ↑ ↓ +------------+ ↑ ↓ +----------------+ | DataNode集群 | (数据存储) +----------------+ (多机架部署)
2.1.3 与其他存储系统的核心差异
维度HDFS对象存储(S3)分布式块存储(Ceph)关系型数据库(MySQL)
数据模型文件/目录对象(Key-Value)数据块(Block ID)表/行/列
访问接口文件系统API(POSIX子集)RESTful API块设备驱动SQL接口
数据一致性强一致性(文件关闭后)最终一致性(默认)/强一致性(可选)强一致性事务级强一致性
扩展性横向扩展(节点数)无限扩展(理论上)弹性扩展分片扩展(Sharding)
典型块大小128MB-256MB任意大小(建议5MB-5GB)4KB-1MB数据页(通常16KB)
适用场景大数据批处理非结构化数据存储块设备虚拟化事务型数据处理

3. 核心算法原理 & 具体操作步骤

3.1 HDFS 副本放置策略(机架感知)

HDFS 的副本策略是提升吞吐量和容错性的关键,默认策略(3副本):

  1. 第一个副本:优先存放在客户端所在节点(本地节点,若无则随机选一个节点)。
  2. 第二个副本:存放在不同机架的节点。
  3. 第三个副本:存放在同第二个副本所在机架的另一个节点。

Python 模拟副本放置算法

defplace_replicas(client_node,all_nodes,rack_map):# 机架映射:节点 -> 机架IDclient_rack=rack_map[client_node]replicas=[]# 第一个副本:本地节点(若存在)ifclient_nodeinall_nodes:replicas.append(client_node)else:replicas.append(all_nodes[0])# 随机选第一个节点# 第二个副本:不同机架的节点other_racks=[rackforrackinset(rack_map.values())ifrack!=client_rack]ifother_racks:second_rack=other_racks[0]second_nodes=[nodefornodeinall_nodesifrack_map[node]==second_rack]replicas.append(second_nodes[0]ifsecond_nodeselseall_nodes[1])# 第三个副本:同第二个副本机架的不同节点second_rack_nodes=[nodefornodeinall_nodesifrack_map[node]==second_rack]third_candidates=[nodefornodeinsecond_rack_nodesifnode!=replicas[1]]replicas.append(third_candidates[0]ifthird_candidateselsesecond_rack_nodes[0])returnreplicas# 示例数据rack_map={'node1':'rack1','node2':'rack1','node3':'rack2','node4':'rack2','node5':'rack3'}all_nodes=['node1','node2','node3','node4','node5']print(place_replicas('node1',all_nodes,rack_map))# 输出: ['node1', 'node3', 'node4']

3.2 对象存储(S3)的最终一致性实现

S3 的最终一致性通过分布式键值存储(如 DynamoDB 风格的架构)实现,写操作后立即返回成功,但不同节点的读取可能返回旧数据。读操作通过版本控制(Versioning)和一致性读取(Consistent Read)优化。

S3 写操作流程(简化版)

  1. 客户端发送 PUT 请求到边缘节点。
  2. 边缘节点将数据路由到区域内的多个存储节点(至少3个可用区)。
  3. 存储节点异步同步数据,更新元数据版本号。
  4. 客户端收到成功响应,此时数据可能尚未完全同步到所有节点。

3.3 数据湖存储(Delta Lake)的 ACID 实现

Delta Lake 在 HDFS 或对象存储上添加事务日志(Transaction Log),通过以下机制实现 ACID:

  1. 原子性:写操作要么全部提交,要么回滚,通过日志记录操作前后的状态。
  2. 一致性:通过校验和(Checksum)和事务时间戳(Timestamp)保证数据一致性。
  3. 隔离性:多写操作通过乐观锁(Optimistic Locking)实现隔离,避免写冲突。
  4. 持久性:事务日志持久化存储,支持故障恢复。

4. 数学模型和公式 & 详细讲解

4.1 存储成本模型

4.1.1 HDFS 副本存储成本

假设数据大小为 ( D ),副本数为 ( r ),块大小为 ( B ),则存储占用空间:
[
\text{存储量} = D \times r + \text{元数据开销}
]
元数据开销主要来自 NameNode 内存,每个文件/目录条目约占 150 bytes,每个数据块约占 150 bytes:
[
\text{元数据内存} = (N_{files} + N_{blocks}) \times 150 , \text{bytes}
]
其中 ( N_{blocks} = \lceil D / B \rceil )。

4.1.2 对象存储(S3)成本

S3 按实际存储容量(包括版本和删除标记)收费,假设对象大小为 ( O_i ),存储时长为 ( t ),则总成本:
[
\text{成本} = \left( \sum_{i=1}^n O_i \times t \right) \times \text{单价/GB/月} + \text{请求费用} + \text{数据传输费用}
]

4.2 吞吐量计算公式

4.2.1 HDFS 顺序读取吞吐量

HDFS 支持并行读取多个数据块,吞吐量由带宽和并行度决定:
[
\text{吞吐量} = \sum_{i=1}^k \frac{B_i}{t_i}
]
其中 ( k ) 是同时读取的 DataNode 数量,( B_i ) 是块大小,( t_i ) 是读取时间(受网络带宽和磁盘 IO 限制)。

4.2.2 随机访问延迟对比
存储系统顺序访问延迟随机访问延迟
HDFS~10ms~50ms
SSD 块存储~1ms~0.1ms
对象存储~50ms~100ms

4.3 容错性数学模型

4.3.1 副本策略 vs 纠删码(EC)
  • 副本策略(3副本):冗余度 ( 33% ),允许同时失效 ( 2 ) 个节点。
  • 纠删码(如 RS-3-2):将数据分成 3 个数据块和 2 个校验块,允许失效 ( 2 ) 个块,冗余度 ( 66% ),比 3副本节省 33% 空间。
    [
    \text{冗余空间比} = \frac{m + n}{m} \quad (\text{EC, } m \text{数据块}, n \text{校验块})
    ]
    [
    \text{副本冗余比} = r \quad (\text{副本数 } r)
    ]

5. 项目实战:代码实际案例和详细解释说明

5.1 开发环境搭建

5.1.1 本地 HDFS 集群(Docker 部署)
  1. 拉取 Hadoop Docker 镜像:
    dockerpull sequenceiq/hadoop-docker:2.7.1
  2. 启动 NameNode 和 DataNode:
    dockerrun-it--namenn-p9000:9000 sequenceiq/hadoop-docker:2.7.1 /etc/bootstrap.sh-bash# 在容器内执行hdfs namenode-formatstart-dfs.sh
  3. 验证集群状态:
    hdfs dfsadmin-report
5.1.2 S3 本地模拟(MinIO)
  1. 安装 MinIO:
    wgethttps://dl.min.io/server/minio/release/linux-amd64/miniochmod+x minio ./minio server ./data
  2. 配置客户端:
    pip install miniofromminioimportMinio client=Minio("localhost:9000",access_key="minio",secret_key="minio123",secure=False)

5.2 源代码详细实现

5.2.1 HDFS 文件上传下载(Python)

使用hdfs库:

fromhdfsimportInsecureClient# 连接 HDFSclient=InsecureClient("http://localhost:9870",user="root")# 上传文件withopen("local_file.txt","rb")asf:client.upload("/hdfs_dir","hdfs_file.txt",f)# 下载文件withclient.read("/hdfs_dir/hdfs_file.txt")asreader:content=reader.read()print(content.decode())# 列出目录print(client.list("/hdfs_dir"))
5.2.2 S3 对象存储操作(Python boto3)
importboto3# 连接 S3(MinIO)s3=boto3.client('s3',endpoint_url='http://localhost:9000',aws_access_key_id='minio',aws_secret_access_key='minio123')# 上传对象s3.upload_file('local_file.txt','my-bucket','s3_object.txt')# 下载对象s3.download_file('my-bucket','s3_object.txt','downloaded_file.txt')# 列出对象objects=s3.list_objects_v2(Bucket='my-bucket')['Contents']print([obj['Key']forobjinobjects])

5.3 代码解读与分析

  1. 接口差异:HDFS 使用文件系统API(上传下载基于路径),S3 使用对象API(基于Bucket和Key)。
  2. 错误处理:HDFS 上传失败可能因块复制失败,需处理UnexpectedEOF异常;S3 需处理网络延迟导致的ConnectionError
  3. 性能优化:HDFS 可通过调整块大小(client.set_chunk_size())优化吞吐量;S3 支持多部分上传(Multipart Upload)处理大文件。

6. 实际应用场景

6.1 HDFS 核心场景

6.1.1 大数据批处理
  • 场景:日志分析(如电商用户行为日志)、ETL 处理、离线机器学习训练。
  • 优势:高吞吐量顺序读写,支持 TB/PB 级数据存储,与 MapReduce、Spark 深度集成。
  • 案例:某电商平台每日处理 100TB 日志数据,使用 HDFS 存储,Spark 进行实时ETL清洗,结果写入 Hive 数据仓库。
6.1.2 数据湖底层存储
  • 场景:统一存储结构化(Parquet)、半结构化(JSON)、非结构化(日志)数据。
  • 优势:支持分层存储(热/温/冷数据),结合 Delta Lake 实现 ACID 事务。
  • 案例:某金融机构搭建数据湖,底层使用 HDFS 存储,上层通过 Hudi 管理数据版本,支持 CDC(变更数据捕获)同步到下游系统。

6.2 对象存储核心场景

6.2.1 非结构化数据存储
  • 场景:图片/视频存储(如社交媒体相册)、日志归档、备份数据。
  • 优势:无限扩展性,支持海量小文件,RESTful API 便于跨平台访问。
  • 案例:某短视频平台存储 10亿+ 视频文件,使用 S3 存储,通过 CloudFront 加速全球访问,成本比自建 HDFS 降低 40%。
6.2.2 云原生应用
  • 场景:Serverless 函数计算(如 AWS Lambda)、容器镜像存储(Docker Registry)。
  • 优势:与云服务深度集成,支持细粒度权限控制(ACL/POLICY),天生支持多区域冗余。
  • 案例:某互联网公司使用 OSS 存储容器镜像,配合 K8s 实现跨地域部署,镜像拉取延迟降低 30%。

6.3 块存储核心场景

6.3.1 数据库集群存储
  • 场景:关系型数据库(MySQL/PostgreSQL)、分布式数据库(TiDB)的底层存储。
  • 优势:块级随机访问,低延迟,支持裸设备(Raw Device)提升 IO 性能。
  • 案例:某银行核心交易系统使用 Ceph Block 作为 MySQL 存储,IOPS 达到 10万+,满足每秒万次交易的低延迟需求。
6.3.2 虚拟机存储
  • 场景:云计算中的虚拟机(VM)磁盘,如 AWS EBS、OpenStack Cinder。
  • 优势:支持在线扩容、快照备份,与计算节点解耦,提升资源利用率。

7. 工具和资源推荐

7.1 学习资源推荐

7.1.1 书籍推荐
  1. 《Hadoop: The Definitive Guide》(Tom White):HDFS 架构与实践的权威指南。
  2. 《Designing Data-Intensive Applications》(Martin Kleppmann):分布式存储系统设计的底层原理。
  3. 《Cloud Storage for Developers》(John Hughes):对比 AWS S3、Google Cloud Storage 等云存储服务。
7.1.2 在线课程
  1. Coursera 《Hadoop Specialization》(University of Minnesota):涵盖 HDFS、MapReduce、YARN 的完整课程。
  2. Udemy 《Distributed Storage Systems: Design and Implementation》:深入讲解一致性协议(Raft/Paxos)、容错机制。
  3. AWS Free Tier 《S3 Deep Dive》:官方免费课程,讲解 S3 存储类(Standard/Infrequent Access/Glacier)的最佳实践。
7.1.3 技术博客和网站
  • Apache HDFS 官网:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
  • Medium 专栏《Distributed Systems Weekly》:定期分享分布式存储最新论文和案例。
  • 阿里云开发者社区:https://developer.aliyun.com/ ,存储专题涵盖 OSS、表格存储等实践经验。

7.2 开发工具框架推荐

7.2.1 IDE和编辑器
  • PyCharm/IntelliJ:支持 Hadoop 插件,代码自动补全和调试。
  • VS Code:通过 Remote SSH 插件连接 HDFS 集群,实时编辑配置文件。
7.2.2 调试和性能分析工具
  • HDFS Web UI:NameNode 端口 9870 查看集群状态,DataNode 端口 9864 查看节点详情。
  • Grafana + Prometheus:监控 HDFS 指标(如块丢失率、副本数不足比例)。
  • s3bench:对象存储性能测试工具,支持多线程上传下载压力测试。
7.2.3 相关框架和库
  • HDFS 客户端:Java SDK(原生支持)、Python hdfs 库、Go hdfs 包。
  • 对象存储 SDK:boto3(Python)、aws-sdk-js(JavaScript)、minio-py(MinIO 原生 SDK)。
  • 数据湖工具:Delta Lake(Scala/Java)、Hudi(Java)、Iceberg(Java),均支持与 Spark 集成。

7.3 相关论文著作推荐

7.3.1 经典论文
  1. 《The Google File System》(SOSP 2003):HDFS 的设计蓝本,提出分布式文件系统的核心挑战。
  2. 《Amazon Simple Storage Service (S3)》(AWS 技术白皮书):对象存储的架构设计与一致性模型。
  3. 《HDFS Architecture Revisited》(Apache HDFS 设计文档):分析 HDFS 3.0 引入的 EC、联邦 NameNode 等新特性。
7.3.2 最新研究成果
  1. 《High-Performance Object Storage for the Next Generation of Data Lakes》(SIGMOD 2022):探讨对象存储如何优化数据湖的元数据管理。
  2. 《Towards a Unified Storage Architecture for Hybrid Clouds》(VLDB 2023):混合云场景下 HDFS 与云存储的协同架构。
7.3.3 应用案例分析
  • Netflix 大规模数据存储实践:混合使用 S3 和自建 HDFS,通过 ETL 管道同步数据,案例详见 Netflix Tech Blog。
  • 字节跳动数据湖架构:基于 HDFS 和 Delta Lake 构建 EB 级数据湖,支持实时数仓和机器学习,公开于 Apache Hudi 官网案例。

8. 总结:未来发展趋势与挑战

8.1 技术融合趋势

  1. 湖仓一体架构:HDFS 与对象存储协同,例如底层用 S3 存储数据,上层通过 Hudi/Delta Lake 提供表级管理,结合 Spark 实现统一分析。
  2. 分层存储普及:HDFS 3.0 支持 EC 和分层存储策略,未来将更多与 SSD、NVMe、磁带库结合,降低存储成本。
  3. 多云存储适配:企业采用混合云架构,需要存储系统支持跨 HDFS、S3、OSS 的统一访问接口(如 Presto 的多源查询)。

8.2 核心挑战

  1. 元数据管理瓶颈:HDFS NameNode 内存限制导致大规模小文件场景性能下降,需依赖外部元数据存储(如 HBase)或改进架构(Federation)。
  2. 实时性与一致性平衡:传统 HDFS 适合批处理,而数据湖需要支持实时写入和事务,需优化流水线写入和 ACID 实现。
  3. 成本与性能权衡:对象存储的按使用付费模式 vs HDFS 的自建成本,需根据数据生命周期(热/温/冷)选择混合存储策略。

8.3 选型决策参考

决策因素选择 HDFS选择对象存储选择块存储选择关系型数据库
数据规模10TB+,大文件为主任意规模,小文件友好单节点TB级,块访问100GB内,结构化数据
访问模式顺序读写为主随机读写,API驱动低延迟随机访问事务型随机读写
一致性要求最终一致性(写入时强一致)最终一致性(可选强一致)强一致性事务级强一致性
生态集成Hadoop/Spark生态优先云服务生态优先虚拟化/数据库优先SQL生态优先
成本模型自建硬件,长期存储划算按需付费,短期成本低高性能场景划算小规模场景划算

9. 附录:常见问题与解答

Q1:HDFS 为什么不适合存储大量小文件?

A:每个小文件在 NameNode 中占用约 150 bytes 元数据,大量小文件(如百万级)会导致 NameNode 内存溢出。解决方案:使用 SequenceFile 合并小文件,或采用 HDFS Federation 分散元数据压力。

Q2:对象存储如何实现强一致性?

A:S3 提供GetObject时的一致性读取(Consistent Read),通过等待所有节点同步完成返回数据,牺牲部分写入吞吐量换取强一致性。

Q3:数据湖为什么需要 ACID 支持?

A:数据湖存储多源异构数据,需支持增量更新(如 CDC)、事务回滚(如 ETL 失败恢复),ACID 是保证数据可靠性的基础。

Q4:HDFS 3.0 相比 2.0 有哪些关键改进?

A:引入纠删码(EC)降低存储成本,支持单节点超过 10PB 存储,NameNode 联邦架构提升元数据扩展性,支持分层存储策略。

10. 扩展阅读 & 参考资料

  1. Apache HDFS 官方文档:https://hadoop.apache.org/docs/stable/
  2. AWS S3 最佳实践:https://docs.aws.amazon.com/AmazonS3/latest/userguide/best-practices.html
  3. 《分布式存储系统:原理、架构与实践》(杨传辉)
  4. Cloud Storage Benchmark Report 2023(Gartner)

通过深入对比分析,我们可以清晰看到,HDFS 在大规模批处理和数据湖场景中仍保持核心地位,而对象存储在云原生和非结构化数据领域具有不可替代的优势。未来的存储架构将趋向混合化、智能化,需要根据业务需求动态组合不同存储系统,实现性能、成本和扩展性的最优平衡。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 7:18:34

模拟电子技术:场效应管放大器设计操作指南

场效应管放大器设计实战指南:从原理到调试的完整路径你有没有遇到过这样的情况?手头有一个微弱的传感器信号,比如来自麦克风、光电二极管或者生物电极,结果一接上放大电路,噪声比信号还大;或者明明算好了增…

作者头像 李华
网站建设 2026/4/14 23:39:39

电商项目中Promise.all的5个实战应用场景

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请创建一个电商网站的商品详情页示例,使用Promise.all同时获取以下数据:1. 商品基本信息;2. 商品评价列表;3. 推荐商品列表&#xf…

作者头像 李华
网站建设 2026/4/12 4:30:01

3分钟极速安装:SourceTree高效配置全攻略

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个SourceTree极速安装包,整合所有依赖项和优化配置,实现:1) 一键静默安装 2) 自动下载最新稳定版 3) 智能跳过非必要步骤 4) 预设中国区镜…

作者头像 李华
网站建设 2026/4/12 9:23:36

AUTOSAR开发新革命:AI如何加速汽车软件架构设计

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个基于AUTOSAR标准的AI辅助工具,能够自动解析ARXML文件并生成优化的BSW模块配置代码。要求支持以下功能:1. 智能识别ECU硬件资源需求 2. 自动生成符合…

作者头像 李华
网站建设 2026/4/15 5:25:01

League Akari终极教程:3步配置法显著提升游戏效率

League Akari终极教程:3步配置法显著提升游戏效率 【免费下载链接】LeagueAkari ✨兴趣使然的,功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 英雄联盟辅助…

作者头像 李华
网站建设 2026/4/4 0:05:55

AI助力STM32开发:如何用快马平台自动生成CubeProgrammer脚本

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请生成一个STM32CubeProgrammer的Python脚本,实现以下功能:1.自动连接STM32开发板;2.擦除指定扇区;3.烧录提供的hex文件&#xff1b…

作者头像 李华