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

mongodb 集群安装

整体架构图:

1. 配置域名

Server1:

OS version: CentOS Linux release 8.5.2111

hostnamectl --static set-hostname mongo01

vi /etc/sysconfig/network

# Created by anaconda
hostname=mong01

echo "192.168.88.20 mong1 mongo01.com mongo02.com" >> /etc/hosts
echo "192.168.88.24 mong2 mongo03.com mongo04.com" >> /etc/hosts
echo "192.168.88.26 mong3 mongo05.com mongo06.com" >> /etc/hosts

关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld

Server2:

OS version: CentOS Linux release 8.5.2111

hostnamectl --static set-hostname mongo2

vi /etc/sysconfig/network

# Created by anaconda
hostname=mong2

echo "192.168.88.20 mong1 mongo01.com mongo02.com" >> /etc/hosts
echo "192.168.88.24 mong2 mongo03.com mongo04.com" >> /etc/hosts
echo "192.168.88.26 mong3 mongo05.com mongo06.com" >> /etc/hosts

Server3:

OS version: CentOS Linux release 8.5.2111

hostnamectl --static set-hostname mongo3

vi /etc/sysconfig/network

# Created by anaconda
hostname=mong3

echo "192.168.88.20 mong1 mongo01.com mongo02.com" >> /etc/hosts
echo "192.168.88.24 mong2 mongo03.com mongo04.com" >> /etc/hosts
echo "192.168.88.26 mong3 mongo05.com mongo06.com" >> /etc/hosts

2. 准备分片目录

在各服务器上创建数据目录,使用/data,也可以按特定需求指定目录
在mongo01.com,mongo03.com,mongo05.com上执行:
mkdir -p /data/shard1/db /data/shard1/log /data/config/db /data/config/log

在mongo02.com,mongo04.com,mongo06.com上执行:
mkdir -p /data/shard2/db /data/shard2/log /data/mongos

3. download mongo image

Download MongoDB Community Server | MongoDB

将安装包上传到服务器,因为我实验服务器centos版本与mongdb兼容问题,最后选择了mongod 4.4.13的版本进行安装。每台服务器进行同样的安装。

upload install file to:
/root/install/mongodb-linux-x86_64-rhel80-4.4.13.tgz

cd /root/install

mkdir -p /opt/db

tar -xvf mongodb-linux-x86_64-rhel80-4.4.13.tgz -C /opt/db
cd /opt/db
mv mongodb-linux-x86_64-rhel80-4.4.13 mongodb-4.4.13

rm -rf /usr/bin/mongod
ln -s /opt/db/mongodb-4.4.13/bin/mongod /usr/bin/mongod

vi /etc/profile

...

#add below at last line

export PATH=/opt/db/mongodb-4.4.13/bin:$PATH

3. 分片

3.1 创建分片复制集,三台服务器上分别执行:

[root@mongo1 db]# mongod --bind_ip 0.0.0.0 --replSet shard1 --dbpath /data/shard1/db --logpath /data/shard1/log/mongod.log --port 27010 --fork --shardsvr --wiredTigerCacheSizeGB 1
about to fork child process, waiting until server is ready for connections.
forked process: 5473
child process started successfully, parent exiting

在高版本的 MongoDB 中,--shardsvr 参数已被弃用,因为 MongoDB 的新版本改进了集群的自动配置和发现机制。若要在高版本 MongoDB 中设置分片集群,你不再需要显式指定 --shardsvr。

ps -ef |grep mongod
root        5473       1  3 01:02 ?        00:00:26 mongod --bind_ip 0.0.0.0 --replSet shard1 --dbpath /data/shard1/db --logpath /data/shard1/log/mongod.log --port 27010 --fork --shardsvr --wiredTigerCacheSizeGB 1

3.2 初始化分片复制集:

# 进入mongo shell
mongo mongo01.com:27010
#shard1复制集节点初始化

rs.initiate({
    _id: "shard1",
    "members" : [
    {
        "_id": 0,
        "host" : "mongo01.com:27010"
    },
    {
        "_id": 1,
        "host" : "mongo03.com:27010"
    },
    {
        "_id": 2,
        "host" : "mongo05.com:27010"
    }
    ]
})

查看复制状态:

shard1:PRIMARY> rs.status()
{
        "set" : "shard1",
        "date" : ISODate("2024-06-16T07:47:41.418Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "syncSourceHost" : "",
        "syncSourceId" : -1,
        "heartbeatIntervalMillis" : NumberLong(2000),
        "majorityVoteCount" : 2,
        "writeMajorityCount" : 2,
        "votingMembersCount" : 3,
        "writableVotingMembersCount" : 3,
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1718524053, 1),
                        "t" : NumberLong(1)
                },
                "lastCommittedWallTime" : ISODate("2024-06-16T07:47:33.075Z"),
                "readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1718524053, 1),
                        "t" : NumberLong(1)
                },
                "readConcernMajorityWallTime" : ISODate("2024-06-16T07:47:33.075Z"),
                "appliedOpTime" : {
                        "ts" : Timestamp(1718524053, 1),
                        "t" : NumberLong(1)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1718524053, 1),
                        "t" : NumberLong(1)
                },
                "lastAppliedWallTime" : ISODate("2024-06-16T07:47:33.075Z"),
                "lastDurableWallTime" : ISODate("2024-06-16T07:47:33.075Z")
        },
        "lastStableRecoveryTimestamp" : Timestamp(1718524013, 1),
        "electionCandidateMetrics" : {
                "lastElectionReason" : "electionTimeout",
                "lastElectionDate" : ISODate("2024-06-16T07:37:52.589Z"),
                "electionTerm" : NumberLong(1),
                "lastCommittedOpTimeAtElection" : {
                        "ts" : Timestamp(0, 0),
                        "t" : NumberLong(-1)
                },
                "lastSeenOpTimeAtElection" : {
                        "ts" : Timestamp(1718523462, 1),
                        "t" : NumberLong(-1)
                },
                "numVotesNeeded" : 2,
                "priorityAtElection" : 1,
                "electionTimeoutMillis" : NumberLong(10000),
                "numCatchUpOps" : NumberLong(0),
                "newTermStartDate" : ISODate("2024-06-16T07:37:52.780Z"),
                "wMajorityWriteAvailabilityDate" : ISODate("2024-06-16T07:37:53.499Z")
        },
        "members" : [
                {
                        "_id" : 0,
                        "name" : "mongo01.com:27010",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 629,
                        "optime" : {
                                "ts" : Timestamp(1718524053, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2024-06-16T07:47:33Z"),
                        "lastAppliedWallTime" : ISODate("2024-06-16T07:47:33.075Z"),
                        "lastDurableWallTime" : ISODate("2024-06-16T07:47:33.075Z"),
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "",
                        "electionTime" : Timestamp(1718523472, 1),
                        "electionDate" : ISODate("2024-06-16T07:37:52Z"),
                        "configVersion" : 1,
                        "configTerm" : -1,
                        "self" : true,
                        "lastHeartbeatMessage" : ""
                },
                {
                        "_id" : 1,
                        "name" : "mongo03.com:27010",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 599,
                        "optime" : {
                                "ts" : Timestamp(1718524053, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1718524053, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2024-06-16T07:47:33Z"),
                        "optimeDurableDate" : ISODate("2024-06-16T07:47:33Z"),
                        "lastAppliedWallTime" : ISODate("2024-06-16T07:47:33.075Z"),
                        "lastDurableWallTime" : ISODate("2024-06-16T07:47:33.075Z"),
                        "lastHeartbeat" : ISODate("2024-06-16T07:47:40.602Z"),
                        "lastHeartbeatRecv" : ISODate("2024-06-16T07:47:39.815Z"),
                        "pingMs" : NumberLong(1),
                        "lastHeartbeatMessage" : "",
                        "syncSourceHost" : "mongo01.com:27010",
                        "syncSourceId" : 0,
                        "infoMessage" : "",
                        "configVersion" : 1,
                        "configTerm" : -1
                },
                {
                        "_id" : 2,
                        "name" : "mongo05.com:27010",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 599,
                        "optime" : {
                                "ts" : Timestamp(1718524053, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1718524053, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2024-06-16T07:47:33Z"),
                        "optimeDurableDate" : ISODate("2024-06-16T07:47:33Z"),
                        "lastAppliedWallTime" : ISODate("2024-06-16T07:47:33.075Z"),
                        "lastDurableWallTime" : ISODate("2024-06-16T07:47:33.075Z"),
                        "lastHeartbeat" : ISODate("2024-06-16T07:47:40.902Z"),
                        "lastHeartbeatRecv" : ISODate("2024-06-16T07:47:39.927Z"),
                        "pingMs" : NumberLong(1),
                        "lastHeartbeatMessage" : "",
                        "syncSourceHost" : "mongo01.com:27010",
                        "syncSourceId" : 0,
                        "infoMessage" : "",
                        "configVersion" : 1,
                        "configTerm" : -1
                }
        ],
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1718524053, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        },
        "operationTime" : Timestamp(1718524053, 1)
}
shard1:PRIMARY> 

3.3 创建 config server 复制集
在三台服务器上执行以下命令:
mongod --bind_ip 0.0.0.0 --replSet config --dbpath /data/config/db \
--logpath /data/config/log/mongod.log --port 27019 --fork \
--configsvr --wiredTigerCacheSizeGB 1

[root@mongo1 db]# mongod --bind_ip 0.0.0.0 --replSet config --dbpath /data/config/db \
> --logpath /data/config/log/mongod.log --port 27019 --fork \
> --configsvr --wiredTigerCacheSizeGB 1
about to fork child process, waiting until server is ready for connections.
forked process: 36934
child process started successfully, parent exiting

3.4 初始化 config server 复制集
# 进入mongo shell
mongo mongo01.com:27019
#config复制集节点初始化
rs.initiate({
    _id: "config",
    "members" : [
    {
        "_id": 0,
        "host" : "mongo01.com:27019"
    },
    {
        "_id": 1,
        "host" : "mongo03.com:27019"
    },
    {
        "_id": 2,
        "host" : "mongo05.com:27019"
    }
    ]
})

4. 搭建 mongos

4.1 指定config复制集

在mongo01.com / mongo03.com / mongo05.com上执行以下命令:
#启动mongos,指定config复制集

mongos --bind_ip 0.0.0.0 --logpath /data/mongos/mongos.log --port 27017 --fork \
--configdb config/mongo01.com:27019,mongo03.com:27019,mongo05.com:27019

4.2 将mongos加入第1个分片

# 连接到mongos
mongo mongo01.com:27017
#添加分片
mongos>sh.addShard("shard1/mongo01.com:27010,mongo03.com:27010,mongo05.com:27010")

#查看mongos状态
mongos>sh.status()

5. 创建分片集合

连接到mongos, 创建分片集合
mongo mongo01.com:27017
mongos>sh.status()
#为了使集合支持分片,需要先开启database的分片功能
mongos>sh.enableSharding("company")
# 执行shardCollection命令,对集合执行分片初始化
mongos>sh.shardCollection("company.emp", {_id: 'hashed'})
mongos>sh.status()
 
#插入测试数据
 use company
for (var i = 0; i < 10000; i++) {
    db.emp.insert({i: i});
}
#查询数据分布
db.emp.getShardDistribution()

6. 创建第2个分片的复制集

在mongo02.com / mongo04.com / mongo06.com上执行以下命令:
mkdir -p /data/shard2/db  /data/shard2/log/

mongod --bind_ip 0.0.0.0 --replSet shard2 --dbpath /data/shard2/db  \
--logpath /data/shard2/log/mongod.log --port 27011 --fork \
--shardsvr --wiredTigerCacheSizeGB 1

初始化第二个分片的复制集
# 进入mongo shell
mongo mongo06.com:27011
#shard2复制集节点初始化
rs.initiate({
    _id: "shard2",
    "members" : [
    {
        "_id": 0,
        "host" : "mongo06.com:27011"
    },
    {
        "_id": 1,
        "host" : "mongo02.com:27011"
    },
    {
        "_id": 2,
        "host" : "mongo04.com:27011"
    }
    ]
})
#查看复制集状态
rs.status()

mongos加入第2个分片
# 连接到mongos
mongo mongo01.com:27017
#添加分片
mongos>sh.addShard("shard2/mongo02.com:27011,mongo04.com:27011,mongo06.com:27011")
#查看mongos状态
mongos>sh.status()

7. check

8.说明

本文主要目的是记录安装过程,也给有类似需求的同学参考。

参考了其他作者的文档。猿创征文|MongoDB数据库 分片集群搭建部署实战_搭建mongodb分片集群-CSDN博客

MongoDB分片集群搭建_哔哩哔哩_bilibili

相关文章:

mongodb 集群安装

整体架构图&#xff1a; 1. 配置域名 Server1&#xff1a; OS version: CentOS Linux release 8.5.2111 hostnamectl --static set-hostname mongo01 vi /etc/sysconfig/network # Created by anaconda hostnamemong01 echo "192.168.88.20 mong1 mongo01.com mongo…...

绿茶集团重启IPO:流量渐退、业绩波动,还能讲出好故事吗?

近日&#xff0c;绿茶集团有限公司(下称“绿茶集团”)向港交所递交上市申请&#xff0c;花旗、招银国际为其联席保荐人。 回望绿茶集团的上市之路&#xff0c;可谓有诸多坎坷。该公司于2021年3月首度向港交所发起冲击&#xff0c;但却将中文版招股书中的“流动负债总额”错写成…...

Git与SSH

Git Git是一种分布式版本控制系统&#xff0c;最初由Linus Torvalds为管理Linux内核开发而设计并开发。Git可以帮助开发团队协作管理代码&#xff0c;跟踪代码变更历史&#xff0c;并在需要时回溯到特定版本。 分布式版本控制&#xff1a;每个开发者都可以拥有完整的代码仓库…...

我的创作纪念日--码农阿豪

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…...

Git 学习笔记(超详细注释,从0到1)

Git学习笔记 1.1 关键词 Fork、pull requests、pull、fetch、push、diff、merge、commit、add、checkout 1.2 原理&#xff08;看图学习&#xff09; 1.3 Fork别人仓库到自己仓库中 记住2个地址 1&#xff09;上游地址&#xff08;upstream地址&#xff09;&#xff1a;http…...

GitLab项目组相关操作(创建项目组Group、创建项目组的项目、为项目添加成员并赋予权限)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 ——《将…...

英语恶补ing

ing的词组都有停下来做某事的感觉了。 second hand是形容词了。 wouldnt buy这里的would是情态动词&#xff0c;也是助动词 助动词不能单独使用&#xff0c;要搭配实义动词&#xff0c;这样才能构成谓语 情态动词&#xff08;modals&#xff09;在英语中有多种作用&#xff…...

DS1339C串行实时时钟-国产兼容RS4C1339

RS4C1339串行实时时钟是一种低功耗的时钟/日期设备&#xff0c;具有两个可编程的一天时间报警器和一个可编程方波输出。地址和数据通过2线双向总线串行传输。时钟/日期提供秒、分钟、小时、天、日期、月份和年份信息。对于少于31天的月份&#xff0c;月末的日期会自动调整&…...

神经网络模型---LeNet-5

一、LeNet-5 1.定义LeNet-5模型 model models.Sequential([1.1添加一个二维卷积层&#xff0c;有6个过滤器&#xff0c;每个过滤器的尺寸是5x5。输入图像尺寸是28x28像素&#xff0c;具有1个颜色通道,激活函数是relu layers.Conv2D(6, (5, 5), activationrelu, input_shape…...

免费分享:1994-2020年中国各行业二氧化碳排放数据(附下载方法)

日前&#xff0c;国务院印发《2024—2025年节能降碳行动方案》针对重点领域进行部署&#xff0c;同时明确了制度标准、价格政策、资金支持、科技引领、市场化机制、全民行动等6项措施&#xff0c;为节能降碳提供支撑保障。1994-2020年中国各行业二氧化碳排放数据为评估环境政策…...

Qemu虚拟机在线迁移到VMware

libvirt版本&#xff1a;libvirt-10.0.0qemu版本&#xff1a;qemu-8.2.0 在生产环境中&#xff0c;大多数的场景是 vmware 虚拟机迁移到 qemu 环境&#xff0c;一般是通过关机然后导出、导入磁盘镜像来实现。 如果要将 qemu 环境虚拟机迁移到 vmware 怎么办呢&#xff1f;要求…...

计算机游戏因为d3dcompiler_47.dll丢失无法启动怎么办?解决只要d3dcompiler_47.dll丢失无法启动游戏软件的方法

d3dcompiler_47.dll 是一个动态链接库文件&#xff0c;属于 Microsoft DirectX 的一部分&#xff0c;主要负责编译和运行 3D 图形程序。它是支持 Direct3D 功能的核心组件&#xff0c;Direct3D 是一种用于编程 3D 图形的 API&#xff0c;广泛应用于游戏和图形密集型应用程序中。…...

LDO的原理及测试方法

一、基本结构 这是LM317芯片的核心,这个电路单元称为Bandgap Reference带隙基准源。属于模拟集成电路中的经典电路结构。 LDO拓扑结构图 常见的基本结构 利用VBE的负温度系数,而VT是正温度系数,正负温度系数抵消就的得到稳定的基准参考电压了(三极管的方程VBE=VT*In(lC/IS…...

图论算法学习

图论 dfs是可一个方向去搜&#xff0c;不到黄河不回头&#xff0c;直到遇到绝境了&#xff0c;搜不下去了&#xff0c;再换方向&#xff08;换方向的过程就涉及到了回溯&#xff09;。bfs是先把本节点所连接的所有节点遍历一遍&#xff0c;走到下一个节点的时候&#xff0c;再…...

面试题——RabbitMQ

★1.如何保证消息的幂等性&#xff1f;&#xff08;如何避免消息重复投递&#xff09; 生产端: 在消息发送前&#xff0c;先查询数据库此消息是否被处理过。处理过则忽略、否则继续处理&#xff0c;并在处理完成后修改状态为已处理。 消费端: 每个消息都生成全局唯一ID或业务I…...

前端开发之浏览器垃圾回收机制

前端开发之浏览器垃圾回收机制 V8引擎&#xff0c;作为Chrome浏览器和Node.js等环境下的JavaScript运行引擎&#xff0c;其垃圾回收机制是确保高效内存管理的关键。 V8垃圾回收机制的深度解析与优化 V8 JavaScript引擎采用了高效的垃圾回收机制&#xff0c;其中核心的实现特…...

less-loader的less转成CSS的底层原理

在现代Web开发中&#xff0c;CSS预处理器如LESS极大地提高了编写样式的效率和灵活性。而less-loader作为webpack的一个加载器&#xff0c;用于将LESS文件转换为CSS文件。本文将深入探讨less-loader如何工作&#xff0c;从解析LESS文件到生成最终的CSS文件的底层原理。 工作流程…...

解锁Flutter中的ProcessResult:让外部命令执行变得轻松

介绍 在我们的编程世界中&#xff0c;有时候我们需要与外部系统或者命令行交互。这就像在一场迷宫中寻找出口一样&#xff0c;我们需要向迷宫的门口询问正确的道路。而在 Flutter 中&#xff0c;这个问路的过程就是通过 ProcessResult 来实现的。 为什么要使用 ProcessResult…...

第二十五篇——信息加密:韦小宝说谎的秘诀

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 加密这件事&#xff0c;对于这个时代的我们来说非常重要&#xff0c;那么…...

Redis 主从复制+哨兵+集群

1、总结写在前面 Redis 集群 数据分片 高可用性 Redis 哨兵 主从复制 故障转移 2、主从复制 2.1、准备配置 查看docker 容器 ip docker inspect 容器id | grep IPAddressdocker inspect -f{{.Name}} {{.NetworkSettings.IPAddress}} $(docker ps -aq)修改配置文件 初始…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...