银河麒麟V10 安装部署大数据管理软件 DataSophon

news2024/9/28 11:19:22

一、概览

1、愿景

致力于快速实现部署、管理、监控以及自动化运维大数据云原生平台,帮助您快速构建起稳定、高效、可弹性伸缩的大数据云原生平台。

2、DataSophon是什么

《三体》,这部获世界科幻文学最高奖项雨果奖的作品以惊艳的"硬科幻"风被大家所熟知,其作者刘慈欣更是被誉为"单枪匹马将中国科幻提高到世界级水平"。

作为三体中非常重要的角色,智子(Sophon)是将九维的质子进行二维展开,通过电路蚀刻改造成超级计算机后,再转回到微观的十一维来监控人类的一举一动,并利用量子纠缠实现瞬时通信报告给4光年之外的三体文明。说白了智子是三体文明部署在地球的AI实时远程监控和管理平台。

DataSophon也是个类似的管理平台,只不过与智子不同的是,智子的目的是锁死人类的基础科学阻碍人类技术爆炸,而DataSophon是致力于自动化监控、运维、管理大数据基础组件和节点的,帮助您快速构建起稳定,高效的大数据集群服务。

主要特性有:

  • 快速部署,可快速完成300个节点的大数据集群部署

  • 兼容复杂环境,极少的依赖使其很容易适配各种复杂环境

  • 监控指标全面丰富,基于生产实践展示用户最关心的监控指标

  • 灵活便捷的告警服务,可实现用户自定义告警组和告警指标

  • 可扩展性强,用户可通过配置的方式集成或升级大数据组件

3、核心特性

    1、简单易用

    仅需几步即可快速完成数千个节点规模的大数据集群部署,界面化操作、轻松管理各种大数据组件,大幅提升运维工作效率

    2、高兼容性

    全面兼容开源生态,已支持多种常用大数据组件、并且适配各种复杂环境,支持常用Linux生态操作系统及arm和x86机器

    3、云原生

    支持大数据服务以容器化方式运行,基于Kubernetes内核实现大数据组件的自动运维调优,避免组件繁琐的运维调优工作

4、整体架构

5、集成组件

    各集成组件均进行过兼容性测试,并稳定运行于300+个节点规模的大数据集群,日处理数据量约4000亿条。在海量数据下,各大数据组件调优成本低,平台默认展示用户关心和需要调优的配置。

序号

名称

版本

描述

1

HDFS

3.3.3

分布式大数据存储

2

YARN

3.3.3

分布式资源调度与管理平台

3

ZooKeeper

3.5.10

分布式协调系统

4

FLINK

1.15.2

实时计算引擎

5

DolphoinScheduler

3.1.1

分布式易扩展的可视化工作流任务调度平台

6

StreamPark

1.2.3

流处理极速开发框架,流批一体&湖仓一体的云原生平台

7

Spark

3.1.3

分布式计算系统

8

Hive

3.1.0

离线数据仓库

9

Kafka

2.4.1

高吞吐量分布式发布订阅消息系统

10

Trino

367

分布式Sql交互式查询引擎

11

Doris

1.1.5

新一代极速全场景MPP数据库

12

Hbase

2.4.16

分布式列式存储数据库

13

Ranger

2.1.0

权限控制框架

14

ElasticSearch

7.16.2

高性能搜索引擎

15

Prometheus

2.17.2

高性能监控指标采集与告警系统

16

Grafana

9.1.6

监控分析与数据可视化套件

17

AlertManager

0.23.0

告警通知管理系统

二、准备环境

1、集群规划

主机名

ip

备注

配置系统 

ddp01

192.168.20.241

master+node1

4C+16G银河麒麟 V10

ddp02

192.168.20.242

node2

4C+16G银河麒麟 V10

ddp03

192.168.20.243

node3

4C+16G银河麒麟 V10

2、网络要求

要求各机器各组件正常运行提供如下的网络端口配置:

组件

默认端口

说明

DDHApplicationServer

8081、2551、8586

8081为http server端口,2551为rpc通信端口,8586为jmx端口

WorkerApplicationServer

2552、9100、8585

2552 rpc通信端口,8585为jmx端口,9100为主机数据采集器端口

nginx

8888

提供 UI 端通信端口

3、客户端浏览器要求

    推荐 Chrome 以及使用 Chrome 内核的较新版本浏览器访问前端可视化操作界面。

4、关闭防火墙(三个节点)

各主机防火墙需关闭。

# 查看当前防火墙状态 [root@ddp01 ~]# sudo systemctl status firewalld # 关闭防火墙 [root@ddp01 ~]# sudo systemctl stop firewalld # 设置开机不启动 [root@ddp01 ~]# sudo systemctl disable firewalld

5、配置hostname  (三个节点)

192.168.20.241[root@ddp01 ~]# hostnamectl set-hostname ddp01[root@ddp01 ~]# 
192.168.20.242[root@ddp02 ~]# hostnamectl set-hostname ddp02[root@ddp02 ~]# 
192.168.20.243[root@ddp03 ~]# hostnamectl set-hostname ddp03[root@ddp03 ~]# 

6、配置 hosts (三个节点)

[root@ddp01 ~]# vim /etc/hosts192.168.20.241     ddp01192.168.20.242     ddp02192.168.20.243     ddp03

7、配置校时服务  (三个节点)

# 安装 chrony[root@ddp01 ~]# yum -y install chrony上次元数据过期检查:0:31:42 前,执行于 2024年03月04日 星期一 16时34分15秒。软件包 chrony-3.5-3.p01.ky10.x86_64 已安装。依赖关系解决。无需任何处理。完毕!# 启用开机启动chronyd服务[root@ddp01 ~]# systemctl enable chronyd.service# 重启chronyd服务[root@ddp01 ~]# systemctl restart chronyd.service# 查看chronyd服务状态[root@ddp01 ~]# systemctl status chronyd.service● chronyd.service - NTP client/server   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)   Active: active (running) since Mon 2024-03-04 17:06:11 CST; 5s ago     Docs: man:chronyd(8)           man:chrony.conf(5)  Process: 9462 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)  Process: 9466 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS) Main PID: 9464 (chronyd)    Tasks: 1   Memory: 260.0K   CGroup: /system.slice/chronyd.service           └─9464 /usr/sbin/chronyd
3月 04 17:06:10 ddp01 systemd[1]: Starting NTP client/server...3月 04 17:06:10 ddp01 chronyd[9464]: chronyd version 3.5 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)3月 04 17:06:10 ddp01 chronyd[9464]: Frequency -11.491 +/- 2.092 ppm read from /var/lib/chrony/drift3月 04 17:06:11 ddp01 systemd[1]: Started NTP client/server.[root@ddp01 ~]# 

# 修改配置文件增加  server ntp1.aliyun.com iburst[root@ddp01 ~]# vi /etc/chrony.conf#pool pool.ntp.org iburstserver ntp1.aliyun.com iburst
# 重启 chronyd 服务[root@ddp01 ~]# systemctl restart chronyd.service
# 设置服务器时间为24小时制[root@ddp01 ~]# timedatectl               Local time: 一 2024-03-04 17:11:34 CST           Universal time: 一 2024-03-04 09:11:34 UTC                 RTC time: 一 2024-03-04 09:11:34                Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: yes              NTP service: active          RTC in local TZ: no[root@ddp01 ~]# 
# 修改时区[root@ddp01 ~]# timedatectl set-timezone Asia/Shanghai 

8、关闭selinux  (三个节点)

[root@ddp01 ~]# vim /etc/sysconfig/selinux# SELINUX=enforcingSELINUX=disabled

9、修改文件句柄最大限制  (三个节点)

[root@ddp01 ~]# vim /etc/security/limits.conf# End of file * soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072

10、配置免密登录 

# 配置免密[root@ddp01 ~]# ssh-keygen -m PEM -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): 回车Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase): 回车Enter same passphrase again: 回车Your identification has been saved in /root/.ssh/id_rsaYour public key has been saved in /root/.ssh/id_rsa.pubThe key fingerprint is:SHA256:Qe9wPduRYNkLtFAjHU9goD9NlkMjocuNUYRxiayH0p0 root@ddp01The key's randomart image is:+---[RSA 3072]----+|       .o=XB%=.  ||       .+*.O+O.. ||     . +*.o O.+. ||    . +.E@ + =.. ||     . .S = o .  ||           .     ||                 ||                 ||                 |+----[SHA256]-----+[root@ddp01 ~]# #集群之间配置免密(包括节点本身)
[root@ddp01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@ddp01/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"The authenticity of host 'ddp01 (fe80::a79d:80fa:dba2:ea81%ens33)' can't be established.ECDSA key fingerprint is SHA256:yE9q6U2UBN1hVRLguZ2W8Fuo83wxgG3WGGLLCxVnoYU.Are you sure you want to continue connecting (yes/no/[fingerprint])? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Authorized users only. All activities may be monitored and reported.root@ddp01's password: 
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'root@ddp01'"and check to make sure that only the key(s) you wanted were added.
[root@ddp01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@ddp02/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"The authenticity of host 'ddp02 (192.168.20.242)' can't be established.ECDSA key fingerprint is SHA256:mKoAmQsQgJI9ugOAOvnH9qqX4X9YTsH8Mt9coH1OI1o.Are you sure you want to continue connecting (yes/no/[fingerprint])? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Authorized users only. All activities may be monitored and reported.root@ddp02's password: 
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'root@ddp02'"and check to make sure that only the key(s) you wanted were added.
[root@ddp01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@ddp03/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"The authenticity of host 'ddp03 (192.168.20.243)' can't be established.ECDSA key fingerprint is SHA256:POEUesKnZUBCfdT2C6N3+oByFHu4lggdCspfCt5Mbf8.Are you sure you want to continue connecting (yes/no/[fingerprint])? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Authorized users only. All activities may be monitored and reported.root@ddp03's password: 
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'root@ddp03'"and check to make sure that only the key(s) you wanted were added.
 # 验证 免密是否成功[root@ddp01 ~]# ssh ddp01[root@ddp01 ~]# ssh ddp02[root@ddp01 ~]# ssh ddp03

11、安装jdk

参考 https://blog.csdn.net/zhangli_li520/article/details/123913328

12、安装mysql

     

参考 https://blog.csdn.net/zhangli_li520/article/details/106842298

 建议mysql版本为5.7.X,并关闭ssl。

  vim /etc/my.cnf

    [mysqld]

    skip-ssl             # 跳过ssl

13、配置应用数据库

注意需关闭mysql ssl功能。在部署过程中,部分组件会执行sql生成库表,不同环境的mysql在配置上存在差异,可根据sql执行情况,变更mysql配置。

创建数据库, 指定数据库编码为UTF-8

CREATE DATABASE IF NOT EXISTS datasophon DEFAULT CHARACTER SET utf8;grant all privileges on *.* to datasophon@"%" identified by 'datasophon' with grant option;GRANT ALL PRIVILEGES ON *.* TO 'datasophon'@'%';FLUSH PRIVILEGES;

三、DataSophon 前后端安装

1、下载安装包

a、下载 datasophon-manager-{version}.tar.gz

      下载地址 https://github.com/datavane/datasophon/releases

我这里下载的是 1.2.1

b、下载DDP部署包

DDP部署包下载地址:链接:https://pan.baidu.com/s/1AA8uUpiV8ejyYavjg2uTAw?pwd=hnn0 提取码:hnn0

c、创建文件夹

 [root@ddp01 ~]# mkdir -p  /opt/datasophon/DDP/packages/

d、上传 datasophon-manager-{version}.tar.gz  至 /opt/datasophon/DDP/packages/

     解压之后的文件结构如下

[root@ddp01 packages]# tar -zxvf datasophon-manager-1.2.1.tar.gz

├── bin               # 执行脚本目录

├── conf              # 配置文件目录

├── lib               # 项目依赖目录

├── (logs)            # 日志目录;应用运行后生成

├── jmx               # jmx插件目录

├── datasophon-init   # 环境初始化脚本

├── README.md         # 读我说明

├── Dockerfile        # 容器构建脚本

└── LICENSE

e、上传 DDP部署包 至  /opt/datasophon/DDP/packages/

2、修改配置文件

修改  /opt/datasophon/DDP/packages/datasophon-manager-1.2.1/conf 目录下datasophon.conf 文件完成配置

[root@ddp01 conf]# pwd/opt/datasophon/DDP/packages/datasophon-manager-1.2.1/conf[root@ddp01 conf]# vim datasophon.conf
# datasource configdatasource.ip=192.168.20.191datasource.port=3857datasource.database=datasophondatasource.username=datasophondatasource.password=datasophon
# serverserver.port=8081server.address=0.0.0.0

3、启动 DataSophon

进入 /opt/datasophon/DDP/packages/datasophon-manager-1.2.1/ 目录下

启动:sh bin/datasophon-api.sh start api

停止:sh bin/datasophon-api.sh stop api

重启:sh bin/datasophon-api.sh restart api

[root@ddp01 datasophon-manager-1.2.1]# sh bin/datasophon-api.sh start apiBegin start api......starting api, logging to /opt/datasophon/DDP/packages/datasophon-manager-1.2.1/logs/api-ddp01.outnohup /usr/bin/java -Xms1g -Xmx1g -Xmn512m -server  -javaagent:/opt/datasophon/DDP/packages/datasophon-manager-1.2.1/jmx/jmx_prometheus_javaagent-0.16.1.jar=8586:/opt/datasophon/DDP/packages/datasophon-manager-1.2.1/jmx/jmx_exporter_config.yaml -Dspring.profiles.active=config -classpath /opt/datasophon/DDP/packages/datasophon-manager-1.2.1/conf:/opt/datasophon/DDP/packages/datasophon-manager-1.2.1/lib/* com.datasophon.api.DataSophonApplicationServer > /opt/datasophon/DDP/packages/datasophon-manager-1.2.1/logs/api-ddp01.out 2>&1 &End start api.

部署成功后,可以进行日志查看,日志统一存放于logs文件夹内:

/opt/datasophon/DDP/packages/datasophon-manager-1.2.1/logs/

├── ddh-api.log

├── ddh-api-error.log

|—— api-{hostname}.out

使用浏览器访问 http://192.168.20.241:8081/ddh 默认用户名密码为 admin/admin123

能访问则个页面表示部署成功

查看mysql datasophon 库里面自动生成的表

4、创建集群

登录进去后 点击创建集群

填写对应的集群名称,和编码,选择对应的集群框架 点击确认

5、存储库管理

点击集群配置

输入 主机列表 和 SSH 用户名 跟端口 点击下一步

等待检测结果 全部成功后,选中主机,点击下一步 等待主机Agent分发 ,主机agent分发步骤将自动分发datasophon-worker组件,并启动WorkerApplicationServer。

分发完成后,选择主机 点击下一步  

选择服务  初始化配置集群先选择部署AlertManager,Grafana和Prometheus三个组件。DataSophon依赖此三个组件实现系统监控告警管理。

点击【下一步】,分配AlertManager,Grafana和Prometheus服务的master服务角色部署节点,此三个组件需部署在同一台机器上。

点击【下一步】,分配AlertManager,Grafana和Prometheus服务的worker与client服务角色部署节点,没有worker和client服务角色的可以跳过之间点击【下一步】。

修改各服务配置。系统已给出默认配置,大部分情况下无需修改。点击下一步 开始安装服务

点击完成

点击进入集群

6、添加服务

1、添加 Zookeeper 服务

选中ZooKeeper 点击下一步

 分配ZooKeeper master服务角色部署节点,zk需部3台或5台。

Zk没有worker与client服务角色,直接点击【下一步】跳过。

根据实际情况修改Zk服务配置。

点击【下一步】,进行zk服务安装。

安装完成后 点击前面  安装  ZOOKEEPER 进到里面查看各个节点安装情况,以及安装日志

点击各个节点名称,查看安装日志  其他组件查看日志类似,后面不在赘述

安装完成后 点击完成

2、添加 HDFS 服务

部署HDFS,其中JournalNode需部署三台,NameNode部署两台,ZKFC和NameNode部署在相同机器上。如下图:

点击【下一步】,选择DataNode部署节点。

根据实际情况修改配置,例如修改DataNode数据存储目录。

点击【下一步】,开始安装Hdfs。

3、添加 YARN 服务

部署YARN,其中ResourceManager需部署两台作高可用。如下图:

点击【下一步】,选择NodeManager部署节点。

根据实际情况修改配置。

安装完成 点击完成

4、添加其他服务服务

其他服务添加跟上述服务添加操作一致

其他功能建议参考官网

https://datasophon.github.io/datasophon-website/

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

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

相关文章

Jmeter+Ant+Git/SVN+Jenkins实现持续集成接口测试,一文精通(一)

前言 Jmeter,Postman一些基本大家相比都懂。那么真实在项目中去使用,又是如何使用的呢?本文将一文详解jmeter接口测试 一、接口测试分类 二、目前接口架构设计 三、市面上的接口测试工具 四、Jmeter简介,安装,环境…

【Kafka系列 08】生产者消息分区机制详解

一、前言 我们在使用 Apache Kafka 生产和消费消息的时候,肯定是希望能够将数据均匀地分配到所有服务器上。 比如很多公司使用 Kafka 收集应用服务器的日志数据,这种数据都是很多的,特别是对于那种大批量机器组成的集群环境,每分…

Visio无空白无黑边导出PDF

步骤1 文件->选项->自定义功能区->勾选开发工具 步骤2 开发工具->显示ShapeSheet->页->将Print Properties中的Margin都设置为0 步骤3 设计->大小->适应绘图 步骤4 导出PDF->选项->取消勾选【辅助功能文档结构标记】->发布

BetterDisplay for mac V2.2.5 强大的mac显示器管理开源工具

BetterDisplay是Mac OS 一个很棒的工具! 它允许您将显示器转换为完全可扩展的屏幕 管理显示器配置覆盖 允许亮度和颜色控制 提供 XDR/HDR 亮度升级(Apple Silicon 和 Intel Mac 上兼容的 XDR 或 HDR 显示器的额外亮度超过 100% - 多种方法可用&#x…

opengl 学习(三)-----纹理

纹理就是贴图 分类前提demo效果解析 分类 前提 需要使用一个库来处理图片&#xff1a;#include <stb_image.h> https://github.com/nothings/stb 你下载好了之后&#xff0c;把目目录包含了就好 然后再引入 #define STB_IMAGE_IMPLEMENTATION #include "stb_i…

鸿蒙开发学习:【ets_frontend组件】

简介 ets_frontend组件是方舟运行时子系统的前端工具&#xff0c;结合ace-ets2bundle组件&#xff0c;支持将ets文件转换为方舟字节码文件。 ets_frontend组件架构图 目录 /arkcompiler/ets_frontend/ ├── test262 # test262测试配置和运行脚本 ├── testTs…

如何轻松打造属于自己的水印相机小程序?

水印相机小程序源码 描述&#xff1a;微信小程序。本文将为您详细介绍小程序水印相机源码的搭建过程&#xff0c;教您如何轻松打造属于自己的水印相机小程序。无论您是初学者还是有一定基础的开发者&#xff0c;都能轻松掌握这个教程。 一&#xff1a;水印相机搭建教程 1 隐…

Node.js:构建高性能网络应用的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

IDEA + Git + GitHub(保姆级教学)

文章目录 IDEA Git GitHub1.IDEA克隆远程仓库到本地仓库1.创建一个GitHub远程仓库test12.IDEA克隆仓库到本地1.复制远程仓库地址2.创建一个版本控制项目3.克隆到本地仓库4.克隆成功 2.IDEA将本地项目push到远程仓库1.在这个项目下新建一个java模块1.新建模块2.填写模块名3.在…

【机器学习】一文掌握逻辑回归全部核心点(上)。

逻辑回归核心点-上 1、引言2、逻辑回归核心点2.1 定义与目的2.2 模型原理2.2.1 定义解析2.2.2 公式2.2.3 代码示例 2.3 损失函数与优化2.3.1 定义解析2.3.2 公式2.3.3 代码示例 2.4 正则化2.4.1 分类2.4.2 L1正则化2.4.3 L2正则化2.4.4 代码示例 3、总结 1、引言 小屌丝&#…

UE4开个头-简易小汽车

跟着谌嘉诚学的小Demo&#xff0c;记录一下 主要涉及到小白人上下车和镜头切换操作 1、动态演示效果 2、静态展示图片 3、蓝图-上下车

HTTP/2的三大改进:头部压缩、多路复用和服务器推送

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

01-分析同步通讯/异步通讯的特点及其应用

同步通讯/异步通讯 微服务间通讯有同步和异步两种方式 同步通讯: 类似打电话场景需要实时响应(时效性强可以立即得到结果方便使用),而且通话期间不能响应其他的电话(不支持多线操作)异步通讯: 类似发邮件场景不需要马上回复并且可以多线操作(适合高并发场景)但是时效性弱响应…

3D Object Detection for Autonomous Driving: A Comprehensive Survey文献阅读

目录 简言 文献地址&#xff1a; 重要网址&#xff08;该项目持续更新中&#xff09; 摘要 1、介绍 2、基础概念 2.1 3D object detection 2.2 Datasets 2.3 Evaluation metrics 2.3.1 评估指标类-1 2.3.2 评估指标类-2 2.3.3 评估指标对比 3、基于Lidar的…

vue实现购物车功能

实现功能 CSS部分 <style>.tr {display: flex;}.th {margin: 10px;width: 20%;height: 50%;}.td {display: flex;margin: 10px;width: 20%;height: 100px;align-items: center;}.app-container .banner-box {border-radius: 20px;overflow: hidden;margin-bottom: 10px;}…

图论(三)之最小生成树(kurskal/Prim)

Minimum Spanning Tree 两大算法&#xff1a;Kruskal 与 Prim 树的含义&#xff1a; 结构中不能形成环 必须连接图结构中的全部顶带&#xff0c;任意两个顶点都是互通的 不同的生成树有不同的权值和&#xff0c;而最小生成树即为最小的那个树 如何构造最小生成树 **目标&…

OB_GINS学习

OB_GINS学习 组合导航中的杆臂测量加速度计的零偏单位转换受到经纬度以及高程影响的正常重力位的计算公式大地坐标系&#xff08;LBH&#xff09;向空间直角坐标系&#xff08;XYZ&#xff09;的转换及其逆转换导航坐标系&#xff08;n系&#xff09;到地心地固坐标系&#xff…

Error while Deploying HAP

第一个程序就遇到这么恶心的bug&#xff0c;也查了很多类似的问题是什么情况&#xff0c;后来无意中菜解决了这个bug&#xff0c;确实也是devicps下面加一个参数&#xff0c;但是找了半天 这是我遇到这个问题的解决办法。其他解决办法如下&#xff1a; https://blog.51cto.com…

STM32中断和外部中断

NVIC&#xff1a;嵌套中断向量控制器&#xff1a;用于统一分配中断优先级和管理中断 响应式优先级&#xff1a;也可以称为插队式优先级哪个优先级高优先处理哪个 抢占式优先级&#xff1a;优先级高的可以优先被处理&#xff0c;相当于CPU可以暂时中断当前处理的程序&#xff0c…

【实验报告】C语言实现猜单词的小游戏

之前帮别人写的一个简单的报告&#xff0c;无偿分享给大家~代码在后面&#xff0c;有一些图片出于懒惰没有上传。比较简单&#xff0c;喜欢的话关注我~&#xff0c;请勿商用~ 1 系统功能模块结构图 该程序主要思路&#xff1a; 头文件设计&#xff0c;存储结构设计&#xff0…