StarRocks 3.0 集群安装手册

本文介绍如何以二进制安装包方式手动部署最新版 StarRocks 3.0集群。

什么是 StarRocks

StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。

StarRocks 架构简洁,采用了全面向量化引擎,并配备全新设计的 CBO (Cost Based Optimizer) 优化器,查询速度(尤其是多表关联查询)远超同类产品。

StarRocks 能很好地支持实时数据分析,并能实现对实时更新数据的高效查询。StarRocks 还支持现代化物化视图,进一步加速查询。

使用 StarRocks,用户可以灵活构建包括大宽表、星型模型、雪花模型在内的各类模型。

StarRocks 兼容 MySQL 协议,支持标准 SQL 语法,易于对接使用,全系统无外部依赖,高可用,易于运维管理。StarRocks 还兼容多种主流 BI 产品,包括 Tableau、Power BI、FineBI 和 Smartbi。

适用场景

StarRocks 可以满足企业级用户的多种分析需求,包括 OLAP (Online Analytical Processing) 多维分析、定制报表、实时数据分析和 Ad-hoc 数据分析等。

OLAP 多维分析

利用 StarRocks 的 MPP 框架和向量化执行引擎,用户可以灵活的选择雪花模型,星型模型,宽表模型或者预聚合模型。适用于灵活配置的多维分析报表,业务场景包括:

  • 用户行为分析

  • 用户画像、标签分析、圈人

  • 高维业务指标报表

  • 自助式报表平台

  • 业务问题探查分析

  • 跨主题业务分析

  • 财务报表

  • 系统监控分析

实时数据仓库

StarRocks 设计和实现了 Primary-Key 模型,能够实时更新数据并极速查询,可以秒级同步 TP (Transaction Processing) 数据库的变化,构建实时数仓,业务场景包括:

  • 电商大促数据分析

  • 物流行业的运单分析

  • 金融行业绩效分析、指标计算

  • 直播质量分析

  • 广告投放分析

  • 管理驾驶舱

  • 探针分析APM(Application Performance Management)

高并发查询

StarRocks 通过良好的数据分布特性,灵活的索引以及物化视图等特性,可以解决面向用户侧的分析场景,业务场景包括:

  • 广告主报表分析

  • 零售行业渠道人员分析

  • SaaS 行业面向用户分析报表

  • Dashboard 多页面分析

统一分析

  • 通过使用一套系统解决多维分析、高并发查询、预计算、实时分析查询等场景,降低系统复杂度和多技术栈开发与维护成本。

  • 使用 StarRocks 统一管理数据湖和数据仓库,将高并发和实时性要求很高的业务放在 StarRocks 中分析,也可以使用 External Catalog 和外部表进行数据湖上的分析。

前提条件

在部署生产环境 StarRocks 之前,请确保如下环境要求已满足。

说明

  • 如果您想在 Ubuntu 22.04 或 ARM 架构处理器上运行 StarRocks,则需要从 StarRocks Docker Hub 下载并运行特定标签的 Docker 镜像,并从 Docker 容器目录 /data/starrocks 下复制二进制文件到您的主机。

  • 依据不同的工作负载复杂性,StarRocks 每个 CPU 线程每秒可以处理 10M 至 100M 行数据。您可以据此估计集群中需要多少 CPU 线程能够满足您的要求。而 StarRocks 在存储数据时利用列存储和压缩,可以达到 4-10 倍的压缩比,您可以使用该数据来估计集群所需的存储量。

  • StarRocks 仅支持 JDK 作为依赖,不支持使用 JRE。

    系统参数配置

关闭Transparent Huge Pages 与 部分内核参数
echo never > /sys/kernel/mm/transparent_hugepage/enabledchmod +x /etc/rc.d/rc.localecho "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >>/etc/rc.d/rc.local
echo "echo 120000 > /proc/sys/kernel/threads-max" >>/etc/rc.d/rc.local
echo "echo 60000  > /proc/sys/vm/max_map_count" >>/etc/rc.d/rc.local
echo "echo 200000 > /proc/sys/kernel/pid_max" >>/etc/rc.d/rc.local

编辑 /etc/sysctl.conf ,调整内核参数vm.overcommit_memory=1vm.swappiness=0vm.min_free_kbytes = 10551236vm.max_map_count=655350fs.aio-max-nr = 1048576fs.nr_open=20480000fs.file-max = 76724600net.core.somaxconn = 65535net.core.netdev_max_backlog = 65535net.ipv4.tcp_max_syn_backlog = 65535net.ipv4.tcp_abort_on_overflow=1
内核参数生效sysctl -p

安装JDK

 tar -zxvf /opt/jdk1.8.0_221.tar.gz -C /opt/

添加环境变量  /root/.bash_profile 

下载并解压安装包

下载 StarRocks 分发各节点并解压二进制安装包。

 tar -zxvf /opt/StarRocks-3.0.0-rc02.tar.gz -C /opt

部署 FE 高可用集群

本小节介绍如何配置部署 Frontend (FE) 节点。FE 是 StarRocks 的前端节点,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。

新集群中的 FE 节点在启动时默认启用 IP 地址访问。

注意

  • FE 节点之间的时钟相差不能超过 5s。如果节点之间存在较大时钟差,请使用 NTP 协议校准时间。

  • 所有 FE 节点的 http_port 需保持相同,因此一台机器无法错开端口部署某个集群的多个 FE 节点。

  • 配置 FE 节点

  • 进入 StarRocks-x.x.x/fe 路径。

cd /opt/StarRocks-3.0.0-rc02/fe

修改 FE 配置文件 conf/fe.conf。以下示例仅添加元数据目录和 Java 目录,以保证部署成功。如需在生产环境中对集群进行详细优化配置,参考 FE 参数配置。

创建数据目录mkdir -p /data1/startrocks/metamkdir -p /data1/startrocks/logmkdir -p /data1/startrocks/log
FE参数配置cat /opt/StarRocks-3.0.0-rc02/fe/conf/fe.conf 
LOG_DIR = /data1/startrocks/log
DATE = "$(date +%Y%m%d-%H%M%S)"
JAVA_HOME = /opt/jdk1.8.0_221/
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx8192m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:${LOG_DIR}/fe.gc.log.$DATE -XX:+PrintConcurrentLocks"
JAVA_OPTS_FOR_JDK_9="-Dlog4j2.formatMsgNoLookups=true -Xmx8192m -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xlog:gc*:${LOG_DIR}/fe.gc.log.$DATE:time"
sys_log_level = INFO
meta_dir = /data1/startrocks/meta
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
riority_networks = 172.26.180.0/24
mysql_service_nio_enabled = true
log_roll_size_mb = 1024
sys_log_dir = /data1/startrocks/log
sys_log_roll_num = 10
sys_log_verbose_modules = 
audit_log_dir = /data1/startrocks/log
audit_log_modules = slow_query, query
audit_log_roll_num = 10
meta_delay_toleration_second = 10
qe_max_connection = 1024
max_conn_per_user = 100
qe_query_timeout_second = 300
qe_slow_log_ms = 5000

注意

当一台机器拥有多个 IP 地址时,需要在 FE 配置文件 conf/fe.conf 中设置 priority_networks,为该节点设定唯一 IP。

启动 FE 节点

运行以下命令启动 FE 节点。

 /opt/StarRocks-3.0.0-rc02/fe/bin/start_fe.sh --daemon
  • 通过运行 jps 命令查看 Java 进程,确认 StarRocksFE 进程是否存在。

  • 通过在浏览器访问 FE ip:http_port(默认 http_port 为 8030),进入 StarRocks 的 WebUI,用户名为 root,密码为空。

  • 添加 FE 节点

  • 您可通过 MySQL 客户端连接 StarRocks 以添加 FE 节点。

  • 在 FE 进程启动后,使用 MySQL 客户端连接 FE 实例。

  • mysql -h 127.0.0.1 -P9030 -uroot
    
  • 说明

    root 为 StarRocks 默认内置 user,密码为空,端口为 fe/conf/fe.conf 中的 query_port 配置项,默认值为 9030

  • 查看 FE 状态。

  • SHOW PROC '/frontends'\G
    

  • 当 Role 为 LEADER 时,当前 FE 节点为选举出的主节点。

  • 当 Role 为 FOLLOWER 时,当前节点是一个能参与选主的 FE 节点。

如果 MySQL 客户端连接失败,可以通过查看 log/fe.warn.log 日志文件发现问题。

如果在初次部署时遇到任何意外问题,可以在删除并重新创建 FE 的元数据目录后,重新开始部署。

添加新 FE 节点

使用 MySQL 客户端连接已有 FE 节点,添加新 FE 节点的信息,包括角色、IP 地址、以及 Port。

  • 在FE LEADER节点 添加 Follower FE 节点。

语法:/opt/StarRocks-3.0.0-rc02/fe/bin/start_fe.sh  --helper host:port --daemon

Follower FE 节点执行:

/opt/StarRocks-3.0.0-rc02/fe/bin/start_fe.sh  --helper 172.26.180.1:9010 --daemon

参数:

  • host:机器的 IP 地址。如果机器存在多个 IP 地址,则该项为 priority_networks 设置项下设定的唯一通信 IP 地址。

  • portedit_log_port 设置项下设定的端口,默认为 9010

出于安全考虑,StarRocks 的 FE 节点和 BE 节点只会监听一个 IP 地址进行通信。如果一台机器有多块网卡,StarRocks 有可能无法自动找到正确的 IP 地址。例如,通过 ifconfig 命令查看到 eth0 IP 地址为 192.168.1.1docker0 IP 地址为 172.17.0.1,您可以设置 192.168.1.0/24 子网以指定使用 eth0 作为通信 IP。此处采用 CIDR 的表示方法来指定 IP 所在子网范围,以便在所有的 BE 及 FE 节点上使用相同的配置。

连接 FE 节点

FE 节点需两两之间建立通信连接方可实现复制协议选主,投票,日志提交和复制等功能。当新的FE节点首次被添加到已有集群并启动时,您需要指定集群中现有的一个节点作为 helper 节点,并从该节点获得集群的所有 FE 节点的配置信息,才能建立通信连接。因此,在首次启动新 FE 节点时候,您需要通过命令行指定 --helper 参数。

语法:/opt/StarRocks-3.0.0-rc02/fe/bin/start_fe.sh  --helper host:port --daemon

 Follower FE 节点执行:

/opt/StarRocks-3.0.0-rc02/fe/bin/start_fe.sh  --helper 172.26.180.1:9010 --daemon 

参数:

  • host:机器的IP 地址。如果机器存在多个 IP 地址,则该项为 priority_networks 设置项下设定的唯一通信 IP 地址。

  • portedit_log_port 设置项下设定的端口,默认为 9010

确认 FE 集群部署成功

查看集群状态,确认部署成功。

SHOW PROC '/frontends'\G

部署 BE 节点

本小节介绍如何配置部署 Backend (BE) 节点。BE 是 StarRocks 的后端节点,负责数据存储以及 SQL 执行等工作。

配置 BE 节点

进入 StarRocks-x.x.x/be 路径。

cd /opt/StarRocks-3.0.0-rc02/be/

修改 BE 节点配置文件 conf/be.conf

cat  /opt/StarRocks-3.0.0-rc02/be/conf/be.conf    
sys_log_level = INFO
be_port = 9060
be_http_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060
jaeger_endpoint = localhost:6831
#priority_networks = 10.10.10.0/24;192.168.0.0/16
priority_networks = 172.26.180.0/24
#storage_root_path = /data1,medium:HDD;/data2,medium:SSD;/data3
storage_root_path = /data2/startrocks_be/storage
sys_log_dir = /data2/startrocks_be/log
sys_log_roll_mode = SIZE-MB-1024
sys_log_roll_num = 10
sys_log_verbose_modules = *
log_buffer_level = -1
JAVA_HOME = /opt/jdk1.8.0_221
JAVA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf"
JAVA_OPTS_FOR_JDK_9="-Djava.security.krb5.conf=/etc/krb5.conf"

注意

当一台机器拥有多个 IP 地址时,需要在 BE 配置文件 conf/be.conf 中设置 priority_networks,为该节点设定唯一 IP。

创建数据目录

mkdir -p /data2/startrocks_be/storagemkdir -p /data2/startrocks_be/log

添加 BE 节点

通过 MySQL 客户端连接FE节点将 BE 节点添加至 StarRocks 集群。

语法:mysql> ALTER SYSTEM decommission BACKEND "host:port";

MySQL [(none)]> ALTER SYSTEM ADD BACKEND "172.26.180.1:9050";
Query OK, 0 rows affected (0.02 sec)

MySQL [(none)]> ALTER SYSTEM ADD BACKEND "172.26.180.2:9050";
Query OK, 0 rows affected (0.01 sec)

MySQL [(none)]> ALTER SYSTEM ADD BACKEND "172.26.180.3:9050";
Query OK, 0 rows affected (0.00 sec)

注意

host 需要与 priority_networks 相匹配,port 需要与 be.conf 文件中的设置的 heartbeat_service_port 相同,默认为 9050

如添加过程出现错误,需要通过以下命令将该 BE 节点从集群移除。

 

语法:bin/start_be.sh --daemon

/opt/StarRocks-3.0.0-rc02/be/bin/start_be.sh --daemon

说明

host 和 port 与添加的 BE 节点一致。

启动 BE 节点

运行以下命令启动 BE 节点。

 

语法:bin/start_be.sh --daemon

/opt/StarRocks-3.0.0-rc02/be/bin/start_be.sh --daemon

确认 BE 启动成功

通过 MySQL 客户端确认 BE 节点是否启动成功。

 

SHOW PROC '/backends'\G

当 Alive 为 true 时,当前 BE 节点正常接入集群。

如果 BE 节点没有正常接入集群,可以通过查看 log/be.WARNING 日志文件排查问题。

如果日志中出现类似以下的信息,说明 priority_networks 的配置存在问题。

W0708 17:16:27.308156 11473 heartbeat_server.cpp:82\] backend ip saved in master does not equal to backend local ip127.0.0.1 vs. 172.16.xxx.xx

如遇到以上问题,可以通过 DROP 错误的 BE 节点,然后重新以正确的 IP 添加 BE 节点的方式来解决。

ALTER SYSTEM DROP BACKEND "172.16.xxx.xx:9050";

如果在初次部署时遇到任何意外问题,可以在删除并重新创建 BE 的数据路径后,重新开始部署。

环境数据测试:

MySQL [(none)]> CREATE DATABASE  chongzh;
Query OK, 0 rows affected (0.20 sec)

MySQL [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| _statistics_       |
| chongzh            |
| information_schema |
+--------------------+
3 rows in set (0.03 sec)

MySQL [(none)]> use chongzh;
MySQL [chongzh]> CREATE TABLE IF NOT EXISTS `detailDemo` (
    `recruit_date`  DATE           NOT NULL COMMENT "YYYY-MM-DD",
    `region_num`    TINYINT        COMMENT "range [-128, 127]",
    `num_plate`     SMALLINT       COMMENT "range [-32768, 32767] ",
    `tel`           INT            COMMENT "range [-2147483648, 2147483647]",
    `id`            BIGINT         COMMENT "range [-2^63 + 1 ~ 2^63 - 1]",
    `password`      LARGEINT       COMMENT "range [-2^127 + 1 ~ 2^127 - 1]",
    `name`          CHAR(
20
)       NOT NULL COMMENT "range char(m),m in (1-255)",
    `profile`       VARCHAR(
500
)   NOT NULL COMMENT "upper limit value 1048576 bytes",
    `hobby`         STRING         NOT NULL COMMENT "upper limit value 65533 bytes",
    `leave_time`    DATETIME       COMMENT "YYYY-MM-DD HH:MM:SS",
    `channel`       FLOAT          COMMENT "4 bytes",
    `income`        DOUBLE         COMMENT "8 bytes",
    `account`       DECIMAL(
12
,
4
)  COMMENT "",
    `ispass`        BOOLEAN        COMMENT "true/false"
) ENGINE=OLAP
DUPLICATE KEY(`recruit_date`, `region_num`)
PARTITION BY RANGE(`recruit_date`)
(
    PARTITION p20220311 VALUES [('2022-03-11'), ('2022-03-12')),
    PARTITION p20220312 VALUES [('2022-03-12'), ('2022-03-13')),
    PARTITION p20220313 VALUES [('2022-03-13'), ('2022-03-14')),
    PARTITION p20220314 VALUES [('2022-03-14'), ('2022-03-15')),
    PARTITION p20220315 VALUES [('2022-03-15'), ('2022-03-16'))
)
DISTRIBUTED BY HASH(`recruit_date`, `region_num`) BUCKETS 
8

PROPERTIES (
    "replication_num" = "1" 
);
[root@HDDC-DFNV-L3-Nredis01 ~]# cat detailDemo_data 
2022-03-13,1,1212,1231231231,123412341234,123452342342343324,hello,welcome,starrocks,2022-03-15 12:21:32,123.04,21.12345,123456.123456,true
2022-03-14,2,1212,1231231231,123412341234,123452342342343324,hello,welcome,starrocks,2022-03-15 12:21:32,123.04,21.12345,123456.123456,false

[root@HDDC-DFNV-L3-Nredis01 ~]# curl --location-trusted -u root: -T /root/detailDemo_data -H "label: streamDemo" \
> -H "column_separator:," \
> http://127.0.0.1:8030/api/chongzh/detailDemo/_stream_load
{
    "TxnId": 2,
    "Label": "streamDemo",
    "Status": "Success",
    "Message": "OK",
    "NumberTotalRows": 2,
    "NumberLoadedRows": 2,
    "NumberFilteredRows": 0,
    "NumberUnselectedRows": 0,
    "LoadBytes": 281,
    "LoadTimeMs": 508,
    "BeginTxnTimeMs": 73,
    "StreamLoadPlanTimeMs": 190,
    "ReadDataTimeMs": 0,
    "WriteDataTimeMs": 119,
    "CommitAndPublishTimeMs": 119
    
    MySQL [chongzh]> select * from detailDemo;
+--------------+------------+-----------+------------+--------------+--------------------+-------+---------+-----------+---------------------+---------+----------+-------------+--------+
| recruit_date | region_num | num_plate | tel        | id           | password           | name  | profile | hobby     | leave_time          | channel | income   | account     | ispass |
+--------------+------------+-----------+------------+--------------+--------------------+-------+---------+-----------+---------------------+---------+----------+-------------+--------+
| 2022-03-13   |          1 |      1212 | 1231231231 | 123412341234 | 123452342342343324 | hello | welcome | starrocks | 2022-03-15 12:21:32 |  123.04 | 21.12345 | 123456.1235 |      1 |
| 2022-03-14   |          2 |      1212 | 1231231231 | 123412341234 | 123452342342343324 | hello | welcome | starrocks | 2022-03-15 12:21:32 |  123.04 | 21.12345 | 123456.1235 |      0 |
+--------------+------------+-----------+------------+--------------+--------------------+-------+---------+-----------+---------------------+---------+----------+-------------+--------+
2 rows in set (0.33 sec)

参考: https://docs.starrocks.io/zh-cn/3.0/quick_start/Deploy

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

同步辐射X射线断层扫描成像在各行业的应用

同步辐射X射线断层扫描成像在各行业的应用 同步辐射X射线断层扫描成像(synchrotron radiation X-ray computed tomography,SRCT)是一种非侵入式、高分辨率的成像技术,利用同步辐射光束产生的高强度、高亮度、单色性和相干性的X射线…

【面试】MySQL事务的12连问

文章目录 前言1. 什么是数据库事务?2. 事务的四大特性3. 事务的隔离级别有哪些?MySQL的默认隔离级别是什么?4. Mysql为什么选择RR作为默认隔离级别?5. 很多大厂为什么选择RC数据库隔离级别?6. 并发场景,数据…

Qt连接MySql数据库(本地和远程数据库均可)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 三种方法方法一 略方法二 使用ODBC设置mysql为数据源库1. 添加ODBC数据源,在控制面板中找到管理工具,其中有ODBC数据源 64位的,打…

数字孪生与元宇宙:数字化科技的双向融合之路

概念 (1)元宇宙(Metaverse)是一个虚拟的三维世界,由数字内容和物理世界中的现实空间相互交织而成,能够提供各种虚拟体验,例如虚拟现实、增强现实、虚拟社交、虚拟经济等。在元宇宙中&#xff0…

8种不同类型的防火墙

什么是防火墙? 防火墙是一种监视网络流量并检测潜在威胁的安全设备或程序,作为一道保护屏障,它只允许非威胁性流量进入,阻止危险流量进入。 防火墙是client-server模型中网络安全的基础之一,但它们容易受到以下方面的…

连ChatGPT都不懂的五一调休,到底怎么来的?

今天是周几? 你上了几天班了? 还要上几天班放假? 五一啥安排? 出行的票抢到了吗? 调休到底是谁发明的?! 五一劳动节是要劳动吗? 为什么昨天是周一,今天还是周一&a…

差分优化算法——DE

🍎道阻且长,行则将至。🍓 目录 一、DE1.步骤2.特点 二、DE Optimiza1.函数最小值问题2.差分进化算法求解2.Java 实现与结果绘图 一、DE 差分进化算法是一种基于群体智能的优化算法,由Storn和Price于1995年提出,最早用…

基于DSP+FPGA+ADS1282支持32Bit高精度数据采集方案(三)系统性能测试

系统性能分析与测试 本章将首先对系统电路的噪声和温漂进行分析,而后对采集系统的性能进行 测试,并对测试数据进行分析。 5.1 高精度 AD 转换电路噪声和温漂分析 5.1.1 电阻噪声与温漂 1 、电阻的噪声 电阻是一种噪声源,其严重程度取…

嵌入式就业怎么样?

嵌入式就业怎么样? 现在的IT行业,嵌入式是大热门,下面也要来给大家介绍下学习嵌入式之后的发展以及就业怎么样。 首先是好找工作。嵌入式人才目前是处于供不应求的状态中,据权威统计机构统计在所有软件开发类人才的需求中,对嵌入式工程师的…

matlab 点云滤波(中值、均值、高斯滤波)代码

点云中值、均值、高斯滤波 介绍一下滤波函数 smoothdata: 对含噪数据进行平滑处理 B smoothdata(___,method) 为上述任一语法指定平滑处理方法。例如,B smoothdata(A,sgolay) 使用 Savitzky-golay 滤波器对 A 中的数据进行平滑处理。Method-平滑处理方法 "…

Springboot获取jar包中resources资源目录下的文件

阿萨斯多问题现象: 今天在项目中遇到一个业务场景,需要用到resources资源目录下的文件,然后就在思考一个问题: 当项目打成jar后,Springboot要如何获取resources资源目录下的文件呢? 问题分析: 如…

GitLABJenkins

GitLAB & Jenkins 目录 实践:基于Jenkins提交流水线(测试成功)-2023.4.25 目的:掌握通过触发器将GitLab和Jenkins集成,实现提交流水线。 1、触发Jenkins构建 安装Generic Webhook Trigger插件 重启后,进入一个Pipeline项目设…

用Java创建可扩展的OpenAI GPT应用程序

ChatGPT 值得深入使用的方面之一是它的引擎,它不仅为基于Web的聊天机器人提供动力,还可以集成到Java应用程序中。 ▌Budget Journey App 想象一下,你想去一个城市旅行并且设置好了预算,你应该如何分配你的钱并让你的旅行难忘&am…

实例分割算法BlendMask

实例分割算法BlendMask 论文地址:https://arxiv.org/abs/2001.00309 github代码:https://github.com/aim-uofa/AdelaiDet 我的个人空间:我的个人空间 密集实例分割 ​ 密集实例分割主要分为自上而下top-down与自下而上bottom-up两类方法…

一种用于地灾边坡大坝安全深度位移监测测斜仪

1用途 固定测斜仪广泛适用于测量土石坝、面板坝、岩土边坡、路堤、基坑、岩石边坡等结构物的水平位移、垂直沉降及滑坡,固定测斜仪配合测斜管可反复使用,并方便实现测量数据的自动采集。 固定测斜仪采用的是耐冲击型倾斜传感器,可靠性好&am…

15天学习MySQL计划-锁(进阶篇)-第十天

15天学习MySQL计划-锁(进阶篇)-第十天 锁 1.概述 1.介绍 ​ 锁是计算机协调多个进程或线程并发访问某个资源的机制。数据库中,除传统的计算资源(cpu,ram,i/o)的争用以外,数据也是…

对数据结构的初步认识

前言: 牛牛开始更新数据结构的知识了.本专栏后续会分享用c语言实现顺序表,链表,二叉树,栈和队列,排序算法等相关知识,欢迎友友们互相学习,可以私信互相讨论哦! 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟&a…

使用 vscode 安装配置 clang-format(代码格式化)

目前,网上能找到的配置教程都是乱教的。他们以C为语言讲配置,其实clang-format默认就是C.所以他们在配置时,即是错了。也会以默认C格式化,也不会提示配置错误。结果他们还不知道他们错在哪?如果让他们配置.CS, .json&a…

23种设计模式之观察者模式(黑马程序员)

观察者模式 一、概述二、结构三、实现四、总结在最后 一、概述 观察者模式又被称为发布-订阅模式(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有…

中级软件设计师备考---操作系统和计算机网络

【因为我自己是软件工程专业毕业的学生,所以408里的这两门课都比较熟悉,因此这一部分只放一些我印象不是完全深刻的知识。】 目录 操作系统前驱图与PV操作死锁的预防与避免绝对路径和相对路径缺页中断的某种练习题 计算机网络网络规划与设计特殊含义的I…