StarRocks入门到熟悉
1、部署
1.1、注意事项
需要根据业务需求设计严谨的集群架构,一般来说,需要注意以下几项:
1.1.1、FE数量及高可用
- FE的Follower要求为奇数个,且并不建议部署太多,通常我们推荐部署1个或3个Follower。
- 在三个Follower时,即可实现高可用(HA)。此时,若Leader节点进程挂掉或与集群脱离通信,其他2个Follower节点会通过bdbje协议快速重新选主出一个Leader,保证集群的正常工作(FE
Leader节点异常仅影响集群写入,不会对集群对外的查询功能有影响)。 - 集群中需要有半数以上的Follower节点存活,才可进行FE的重新选主。
- 一般情况下,推荐部署1 Follower+多Observer的FE架构,通过增加Observer来扩展集群的高并发读服务能力。
- 通常,一个FE节点可以应对10-20台BE节点,建议总的FE节点数量在10个以下,而一般3个即可满足绝大部分业务需求。
1.1.2、BE实例数量
- BE实例数量直接决定了集群整体查询延迟,生产环境BE数量建议至少为3个。
- 为保障数据安全,建议至少部署三个BE实例(不同Host)。
1.1.3、Broker实例数量
- 通常与BE混布,与BE数量保持相同,建议所有的Broker使用相同的名称,这样在执行Broker任务时可以并行使用多个Broker实例。
- 如果业务中不需要和Hadoop类的产品对接,也可以不部署Broker。
1.1.3、FE与BE是否混布
- 单台机器下,同集群FE不能混布,BE虽然能混布但是没有价值。
- FE和BE是可以混部的,但生产环境下需要注意CPU、内存等资源竞争问题,并保证元数据目录和数据目录分属不同磁盘。
1.2、集群架构设计
根据实际业务情况粗估集群规模后,无法较为准确的判断出对应的集群规模,建议先部署一套最小架构的集群,后面逐步扩容。
1.2.1、服务器配置
| 主机名 | 配置 |
|---|---|
| 192.168.110.101(node-101) | 6核 32GB 万兆网卡 CPU支持AVX2指令集 |
| 192.168.110.102(node-102) | 6核 32GB 万兆网卡 CPU支持AVX2指令集 |
| 192.168.110.103(node-103) | 6核 32GB 万兆网卡 CPU支持AVX2指令集 |
| 192.168.110.104(node-104) | 6核 32GB 万兆网卡 CPU支持AVX2指令集 |
| 192.168.110.105(node-105) | 6核 32GB 万兆网卡 CPU支持AVX2指令集 |
1.2.2、集群架构设计
| 机器节点 | 部署服务 |
|---|---|
| 192.168.110.101(node-101) | FE(Leader)、MySQL-Client |
| 192.168.110.102(node-102) | FE(Observer) |
| 192.168.110.103(node-103) | BE、Broker |
| 192.168.110.104(node-104) | BE、Broker |
| 192.168.110.105(node-105) | BE、Broker |
1.2.2、节点目录设计
| FE | 部署目录:/opt/module/starrocks/fe;日志目录:/data/starrocks/log/fe;元数据目录:/data/starrocks/data/meta |
|---|---|
| BE | 部署目录:/opt/module/starrocks/be;日志目录:/data/starrocks/log/be;数据存储目录:/data/starrocks/data/storage |
| Broker | 部署目录:/opt/module/starrocks/apache_hdfs_broker |
1.3、使用普通用户
实际生产中,个别场景下是使用用户名作为鉴权方式,为贴合实际业务,后续的部署操作分别新建starrocks用户进行(密码也暂设为starrocks):
1.3.1、创建用户
useradd starrocks
passwd starrocks
Changing password for user starrocks.New password: 这里输入starrocksBAD PASSWORD: The password contains the user name in some formRetype new password: 再次输入starrockspasswd: all authentication tokens updated successfully.
再分别对其它节点新建用户starrocks(操作同上,略)。
1.3.2、创建目录并授权
使用root用户分别在各节点上新建目录,并将文件夹所有者变更为starrocks用户:
ansible cluster -m shell -a "mkdir -p /opt/module/starrocks/"
ansible cluster -m shell -a "mkdir -p /data/starrocks/log/{fe,be}"
ansible cluster -m shell -a "mkdir -p /data/starrocks/data/{meta,storage}"
1.3.3、免密登录
为starrocks用户配置集群间SSH免密。SSH免密配置方法比较灵
1、生成密钥
su starrocksssh-keygen -t rsa
2、分发密钥
分发至集群其他所有节点
ssh-copy-id 192.168.110.101
1.4、解压安装
1.4.1、解压安装包
tar -zxf StarRocks-3.1.1.tar.gz -C /opt/module/
1.4.2、分发部署文件
ansible cluster -m copy -a 'src=/opt/module/StarRocks-3.1.1/fe dest=/opt/module/starrocks/'
ansible cluster -m copy -a 'src=/opt/module/StarRocks-3.1.1/be dest=/opt/module/starrocks/'
ansible cluster -m copy -a 'src=/opt/module/StarRocks-3.1.1/apache_hdfs_broker dest=/opt/module/starrocks/'
1.4.3、修改FE配置文件
结合业务情况修改对应配置
a、修改Java堆内存,避免GC建议16G以上;
b、设置元数据目录,默认目录为fe/meta,我们需要新建目录并修改配置文件,上文已创建;
c、注意默认端口,避免端口冲突,正常情况下不需要修改;
d、绑定IP(CIDR表示法),避免多网卡情况下FE无法自动找到正确的IP。再次注意,如果不清楚CIDR表示法,就直接填写完整ip,例如配置为priority_networks = 192.168.110.101,这样的写法等同于priority_networks = 192.168.110.101/32;
vi fe/conf/fe.conf# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.#####################################################################
## The uppercase properties are read and exported by bin/start_fe.sh.
## To see all Frontend configurations,
## see fe/src/com/starrocks/common/Config.java# the output dir of stderr/stdout/gc
# LOG_DIR = ${STARROCKS_HOME}/log
LOG_DIR = /data/starrocks/log/feJAVA_HOME=/usr/java/jdk-17DATE = "$(date +%Y%m%d-%H%M%S)"
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx16384m -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"# For jdk 11+, this JAVA_OPTS will be used as default JVM options
JAVA_OPTS_FOR_JDK_11="-Dlog4j2.formatMsgNoLookups=true -Xmx8192m -XX:+UseG1GC -Xlog:gc*:${LOG_DIR}/fe.gc.log.$DATE:time"##
## the lowercase properties are read by main program.
### DEBUG, INFO, WARN, ERROR, FATAL
sys_log_level = INFO# store metadata, create it if it is not exist.
# Default value is ${STARROCKS_HOME}/meta
# meta_dir = ${STARROCKS_HOME}/meta
meta_dir = /data/starrocks/data/metahttp_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
mysql_service_nio_enabled = true# Enable jaeger tracing by setting jaeger_grpc_endpoint
# jaeger_grpc_endpoint = http://localhost:14250# Choose one if there are more than one ip except loopback address.
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
priority_networks =192.168.110.101# Advanced configurations
# log_roll_size_mb = 1024
sys_log_dir = /data/starrocks/log/fe
# sys_log_roll_num = 10
# sys_log_verbose_modules =
audit_log_dir = /data/starrocks/log/fe
# 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
max_routine_load_batch_size = 524288000
routine_load_task_consume_second = 3
routine_load_task_timeout_second = 15
1.4.4、修改BE配置文件
结合业务需求参考官方文档进行修改:
a、注意默认端口,避免端口冲突,正常情况下不需要修改;
b、绑定IP,避免多网卡情况下BE无法自动找到正确的IP;
c、设置数据存储目录,默认目录为be/storage,我们建议根据磁盘情况新建目录并修改配置文件
vi be/conf/be.conf
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.# INFO, WARNING, ERROR, FATAL
sys_log_level = INFO# ports for admin, web, heartbeat service
be_port = 9060
be_http_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060# Enable jaeger tracing by setting jaeger_endpoint
# jaeger_endpoint = localhost:6831# Choose one if there are more than one ip except loopback address.
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
priority_networks = 192.168.110.103# data root path, separate by ';'
# you can specify the storage medium of each root path, HDD or SSD, seperate by ','
# eg:
# storage_root_path = /data1,medium:HDD;/data2,medium:SSD;/data3
# /data1, HDD;
# /data2, SSD;
# /data3, HDD(default);
#
# Default value is ${STARROCKS_HOME}/storage, you should create it by hand.
# storage_root_path = ${STARROCKS_HOME}/storage
storage_root_path = /data/starrocks/data/storage,medium:ssd# Advanced configurations
sys_log_dir = /data/starrocks/log/be
# sys_log_roll_mode = SIZE-MB-1024
# sys_log_roll_num = 10
# sys_log_verbose_modules = *
# log_buffer_level = -1# JVM options for be
JAVA_HOME=/usr/java/jdk-17
# eg:
# JAVA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf"
# For jdk 9+, this JAVA_OPTS will be used as default JVM options
# JAVA_OPTS_FOR_JDK_9="-Djava.security.krb5.conf=/etc/krb5.conf"
base_compaction_check_interval_seconds = 10
cumulative_compaction_num_threads_per_disk = 4
base_compaction_num_threads_per_disk = 2
cumulative_compaction_check_interval_seconds = 2
tablet_max_versions = 15000
1.4.5、分发配置文件
1、分发FE、BE配置文件
ansible cluster -m copy -a 'src=/opt/module/starrocks/fe/conf/fe.conf dest=/opt/module/starrocks/fe/conf/'
ansible cluster -m copy -a 'src=/opt/module/starrocks/be/conf/be.conf dest=/opt/module/starrocks/be/conf/'
2、修个各节点FE、BE配置IP及目录
FE
priority_networks = 192.168.110.102
BE
priority_networks = 192.168.110.104
storage_root_path = /opt/module/storage
1.5、安装mysql-client
rpm -ivh mysql-community-client-plugins-8.0.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.34-1.el7.x86_64.rpm
mysql --version
1.6、安装jdk-17
export JAVA_HOME=/usr/java/jdk-17
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
1.7、部署FE实例
首个启动的FE自动成为Leader
1.7.1、启动FE
可在FE日志目录中查看日志追踪原因,FE的主要日志在fe.log中,所有查询的审计日志在fe.audit.log中。
./start_fe.sh --daemon
1.7.2、查看FE状态
jps | grep StarRocksFe
1.7.3、登录StarRocks
mysql -h192.168.110.101 -P9030 -uroot
1.7.4、添加其他FE实例进集群
建议“先将实例添加进入集群”,然后逐个“启动实例”。将node02的FE作为Observer先添加入集群,端口为edit_log_port,默认是9010。
alter system add observer '192.168.110.102:9010';
若需要将其作为Follower角色加入集群,这里的sql写法为:
alter system add follower "fe_host:edit_log_port";
如果添加时IP或端口信息输入有误,或者由于其他情况需要将实例从集群中删除,sql写法如下:
删除Follower:
alter system drop follower "fe_host:edit_log_port";
删除Observer:
alter system drop observer "fe_host:edit_log_port";
1.7.4、启动其他FE
特别注意:除首个启动的FE外,其他FE节点首次启动时,必需指定一个已存在的FE节点作为helper(后面再启动时就不需要)。
首次启动node-102节点,指定node-101的FE实例作为helper:
cd /opt/module/starrocks/fe/bin/
./start_fe.sh --helper 192.168.110.101:9010 --daemonjps | grep StarRocksFe
1.7.5、查看集群FE状态
在node-101的mysql-client中查看FE状态:
Alive均为true,说明FE状态正常。若状态为false,可以在日志中定位问题,如果异常排查比较耗时,由于是初次启动,可以清空FE的元数据目录,再从头开始操作。
show frontends\G
1.8、部署BE实例
1.8.1、添加BE实例进入集群
使用mysql-client先将这3个BE实例添加进入集群,这里需要使用的端口是portheartbeat_service_port,默认为9050:
alter system add backend '192.168.110.103:9050';
alter system add backend '192.168.110.104:9050';
alter system add backend '192.168.110.105:9050';
如果BE实例添加时IP或端口信息输入有误,或者由于其他异常情况我们需要在集群中删除BE实例,sql写法:
alter system dropp backend "be_host:be_heartbeat_service_port";
- 删除BE实例为危险操作,故删除命令设计为“DROPP”。执行DROPP指令后,集群会立刻删除该BE节点,丢失的副本由FE调度补齐,但若为单副本数据,这部分数据将彻底丢失。
- 集群投入生产后,每个BE节点都存储了大量的业务数据,此时若使用DROPP指令从集群中删除某个BE实例,则存储在该实例上的数据副本会直接丢失。
- 安全删除的写法:DECOMMISSION。DECOMMISSION会先保证副本补齐,然后再下掉该BE节点。
- 在后续业务正常缩容是会建议采用这种方式进行缩容
alter system decommission backend "be_host:be_heartbeat_service_port";
1.8.2、启动BE实例
进程状态异常可在BE日志目录中查看日志追踪原因,BE的主要日志在be.INFO中,其他的日志在be.out中。
cd /opt/module/starrocks/be/bin/
./start_be.sh --daemon# 检查进程状态
ps -ef | grep starrocks_be
1.8.3、查看启动BE状态
使用mysql-client访问StarRocks集群:
Alive均为true,状态正常,若为false,可根据日志排查问题。同样的,因为当前BE为初次启动,如果出现无法快速定位的问题,可以清空storage数据目录和日志目录,重新启动服务。
show backends\G
1.9、部署Broker实例
1.9.1、修改Broker配置文件
Broker实例不需要绑定IP。生产环境下,通常也不需要修改Broker配置文件中的其他配置。
1.9.2、添加Broker实例到集群
在node-101的mysql-client中,先将3个Broker实例添加进入集群,这里端口使用broker_ipc_port,默认端口为8000:
alter system add broker hdfs_broker '192.168.110.103:8000';
alter system add broker hdfs_broker '192.168.110.104:8000';
alter system add broker hdfs_broker '192.168.110.105:8000';
若需要在集群中删除Broker,sql写法为:
ALTER SYSTEM DROP BROKER broker_name "broker_host:broker_ipc_port";
1.9.3、启动Broker服务
有Broker导入
部署了一组独立的 Broker,并将 hdfs-site.xml 文件放在 HDFS 集群对应的 Broker 节点的 {deploy}/conf 目录下。Broker 进程重启
# 分发 hdfs-site.xml
ansible cluster -m copy -a 'src=/opt/module/starrocks/apache_hdfs_broker/conf/hdfs-site.xml dest=/opt/module/starrocks/apache_hdfs_broker/conf/'
启动Broker服务
注:各节点依次启动即可;如果进程状态异常可查看日志追踪原因。
cd /opt/module/starrocks/apache_hdfs_broker/bin/
./start_broker.sh --daemon
检查Broker进程状态
jps | grep BrokerBootstrap
1.9.4、查看集群中Broker状态
Alive均为true,状态正常。Broker日志在apache_hdfs_broker.log中,若状态为false,可依据日志定位问题。
mysql -h192.168.110.101 -P9030 -urootshow broker\G
1.9.5、无Broker导入
将 hdfs-site.xml 文件放在每个 FE 节点和每个 BE 节点的 {deploy}/conf 目录下。
# 分发 hdfs-site.xml
ansible cluster -m copy -a 'src=/opt/module/starrocks/fe/conf/hdfs-site.xml dest=/opt/module/starrocks/fe/conf'
ansible cluster -m copy -a 'src=/opt/module/starrocks/be/conf/hdfs-site.xml dest=/opt/module/starrocks/be/conf'
2、集群管理操作
集群部署完成后,若机器重启或有服务down掉,需要手动或编写脚本启停服务。
2.1.1、手动启停
1、 FE启停
cd /opt/module/starrocks/fe/bin/
#FE启动
./start_fe.sh --daemon
# FE停止
./stop_fe.sh
2、 BE启停
cd /opt/module/starrocks/be/bin
# BE启动
./start_be.sh --daemon
# BE停止
./stop_be.sh
3、 Broker启停
cd /opt/module/starrocks/apache_hdfs_broker/bin/# Broker启动./start_broker.sh --daemon# Broker停止./stop_broker.sh
2.1.2、集群启停脚本
1、脚本
在node-101节点,使用starrocks用户在/home/starrocks目录下创建starrocks.sh文件:
#!/bin/bash# use-method: starrocks.sh start|stop|restartcase $1 in"start"){for i in node-101 node-102 node-103 node-104 node-105doecho "=================== start $i's service ================"ssh $i "source /etc/profile.d/my_env.sh ;cd /opt/module/starrocks;./fe/bin/start_fe.sh --daemon"ssh $i "/opt/module/starrocks/be/bin/start_be.sh --daemon"ssh $i "source /etc/profile.d/my_env.sh ;cd /opt/module/starrocks;./apache_hdfs_broker/bin/start_broker.sh --daemon"done};;"stop"){for i in node-101 node-102 node-103 node-104 node-105doecho "=================== stop $i's service ================"ssh $i "/opt/module/starrocks/apache_hdfs_broker/bin/stop_broker.sh"ssh $i "/opt/module/starrocks/be/bin/stop_be.sh"ssh $i "/opt/module/starrocks/fe/bin/stop_fe.sh"done};;"restart")starrocks.sh stopsleep 2starrocks.sh start;;*)echo "Parameter ERROR!!!";;esac
2、可执行权限
chmod a+x starrocks.sh
3、全局调用
切换至root用户,将脚本移动至/bin目录下以便全局调用
mv starrocks.sh /bin/
4、执行脚本
切换至starrocks用户,测试使用脚本启动集群(先确定集群各实例都处于未启动状态):
# 启动集群
starrocks.sh start
# 停止集群服务
starrocks.sh stop
# 重启集群服务
starrocks.sh restart
2.1.3、使用实例
1、修改管理员账户密码
当前版本,StarRocks部署完成后自带一个高权限用户:root,其默认密码为空。在node-101上使用mysql-client访问StarRocks集群:
mysql -h192.168.110.101 -P9030 -uroot
# 以root用户为例,生产环境建议设置复杂密码
set password=password('StarRocks*2308');
2、创建数据库
create database star;
3、创建用户并授权
CREATE USER 'starrocks'@'%' IDENTIFIED BY 'StarRocks*2308' DEFAULT ROLE user_admin;
grant all on star.* to 'starrocks'@'%';
grant create table on database star to user 'starrocks'@'%';
4、更换用户登录
mysql -h192.168.110.101 -P9030 -ustarrocks -pStarRocks*2308
5、创建数据表
use star;CREATE TABLE IF NOT EXISTS `customer` (`c_custkey` int(11) NOT NULL COMMENT "",`c_name` varchar(26) NOT NULL COMMENT "",`c_address` varchar(41) NOT NULL COMMENT "",`c_city` varchar(11) NOT NULL COMMENT "",`c_nation` varchar(16) NOT NULL COMMENT "",`c_region` varchar(13) NOT NULL COMMENT "",`c_phone` varchar(16) NOT NULL COMMENT "",`c_mktsegment` varchar(11) NOT NULL COMMENT ""
) ENGINE=OLAP
DUPLICATE KEY(`c_custkey`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 12
PROPERTIES (
"replication_num" = "1",
"in_memory" = "false",
"storage_format" = "DEFAULT"
);
6、插入数据
insert into table customer
select
1,'Customer#000000001','j5JsirBM9P','MOROCCO 0','MOROCCO','AFRICA','25-989-741-2988','BUILDING';
7、Stream Load导入
curl --location-trusted -u starrocks:StarRocks*2308-H "label:star_customer" -H "column_separator:|" -T /home/starrocks/customer.tbl http://192.168.110.101:8030/api/star/customer/_stream_load
3、数据同步
3.1、Broker Load
3.1.1、创建表
CREATE TABLE dwd.dwd_enterprise_info(id BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增主键', `eid` string COMMENT '企业eid', `credit_no` string COMMENT '统一社会信用代码', `name` string COMMENT '企业名称', `ipcs` string COMMENT '专利IPC分类号', `titles` string COMMENT '专利标题', `scope` string COMMENT '经营范围', `introduction` string COMMENT '企业简介', `main_business` string COMMENT '主营业务', `industry_code` string COMMENT '行业代码', `industrial_field_new` string COMMENT '行业领域', `html` string COMMENT '网站', `hat_name` string COMMENT '企业资质')
PRIMARY KEY (id,eid)
COMMENT '企业产业链匹配专用表 - 含企业简介主营专利信息'
DISTRIBUTED BY HASH(id,eid) BUCKETS 12
PROPERTIES (
"replication_num" = "1",
"replicated_storage" = "true"
);
3.1.2、同步数据
LOAD LABEL dwd.dwd_alg_enterprise_business_patents_scope_info
(
DATA INFILE("hdfs://IP:8020/warehouse/tablespace/external/hive/dwd.db/dwd_enterprise_info/*")
INTO TABLE dwd_alg_enterprise_business_patents_scope_info
COLUMNS TERMINATED BY "|^|"
FORMAT AS "orc"
(eid, credit_no, name,ipcs,titles,scope,introduction,main_business,industry_code,industrial_field_new,html,hat_name)
)
WITH BROKER 'hdfs_broker';
相关文章:
StarRocks入门到熟悉
1、部署 1.1、注意事项 需要根据业务需求设计严谨的集群架构,一般来说,需要注意以下几项: 1.1.1、FE数量及高可用 FE的Follower要求为奇数个,且并不建议部署太多,通常我们推荐部署1个或3个Follower。在三个Followe…...
华为AR路由器 典型配置案例——以太网交换
目录 Eth-Trunk 例:配置三层链路聚合 组网需求 操作步骤 检查配置结果 配置脚本 VLAN 举例:配置基于接口划分VLAN,实现同一VLAN内的互通(同设备) 组网需求 操作步骤 检查配置结果 配置脚本 举例ÿ…...
DP读书:鲲鹏处理器 架构与编程(十三)操作系统内核与云基础软件
操作系统内核与云基础软件 鲲鹏软件构成硬件特定软件 鲲鹏软件构成硬件特定软件1. Boot Loader2. SBSA 与 SBBR3. UEFI4. ACPI 操作系统内核Linux系统调用Linux进程调度Linux内存管理Linux虚拟文件系统Linux网络子系统Linux进程间通信Linux可加载内核模块Linux设备驱动程序Linu…...
Vue2项目练手——通用后台管理项目第一节
Vue2项目练手——通用后台管理项目 知识补充yarn和npm区别npm的缺点:yarn的优点 npm查看镜像和设置镜像 项目介绍项目的技术栈 项目搭建文件目录 创建路由,引入element-uirouter/index.jsmain.jspages/Users.vuepages/Main.vuepages/Home.vuepages/Login…...
「Vue|网页开发|前端开发」02 从单页面到多页面网站:使用路由实现网站多个页面的展示和跳转
本文主要介绍如何使用路由控制来实现将一个单页面网站扩展成多页面网站,包括页面扩展的逻辑,vue的官方路由vue-router的基本用法以及扩展用法 文章目录 本系列前文传送门一、场景说明二、基本的页面扩展页面扩展是在扩什么创建新页面的代码,…...
【Nginx20】Nginx学习:FastCGI模块(二)缓存配置
Nginx学习:FastCGI模块(二)缓存配置 通过上篇文章的学习,普通的 PHP 与 Nginx 的连接就已经没啥大问题了。一般的网站直接那套配置就够了,这也是 Nginx 非常友好的一面。很多在默认的配置文件中注释掉的内容࿰…...
苹果支付外包开发流程
苹果支付的实现流程主要涉及集成苹果的支付系统——Apple Pay,以及在你的应用中处理支付交易。以下是一个简要的实现流程概述,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.开发者账号…...
银河麒麟V10(Tercel)服务器版安装 Docker
一、服务器环境 ## 查看系统版本,确认版本 cat /etc/kylin-release Kylin Linux Advanced Server release V10 (Tercel)## 操作系统 uname -p aarch64## 内核版本(≥ 3.10) uname -r 4.19.90-21.2.ky10.aarch64## iptables 版本(…...
web、HTTP协议
目录 一、Web基础 1.1 HTML概述 1.1.1 HTML的文件结构 1.2 HTML中的部分基本标签 1.3 URI 和 URL 二.HTTP协议 2.1.HTTP概念 2.2.HTTP协议版本 2.3.HTTP请求方法 2.4.HTTP请求访问的完整过程 2.5.HTTP状态码 2.6.HTTP请求报文和响应报文 2.7.HTTP连接优化 三.HTT…...
达梦SQL书写注意事项
模糊查询 模糊查询like后面的字段要求用单引号引用,不能使用双引号 select * from user where name like %小组 分组查询 select查询的列字段必须在分组中的字段存在 正确: select name,age from user group by name,age 错误: select * f…...
博途1200脉冲输出控制速度轴(轴工艺对象基本配置)
这里的1200脉冲轴,主要用来完成线缆包材绕包时的重叠率控制。关于重叠率的具体概念,这里不再阐述,大家可以看下面的文章链接, 重叠率控制 重叠率控制(算法详细介绍含SCL和梯形图源代码)_RXXW_Dor的博客-CSDN博客产品包装和线缆保护材料的包覆都需要进行材料包装重叠率的控…...
微信小程序 通过setData 给两个变量设置同一个数组时,为什么修改一个变量,另一个会也被修改?
在微信小程序中,使用 setData 方法更新数据时,如果给两个变量设置同一个数组,修改其中一个变量的值会导致另一个变量也被修改的原因是,数组是引用类型的数据,在内存中的存储方式是按引用地址存储。 当你将一个数组赋值…...
保障Web安全:构建可靠的网络防御体系
在当今数字化时代,Web安全已成为互联网世界中至关重要的议题。随着网络攻击手段的不断演进和网络犯罪的增加,保护用户数据和确保系统安全性已成为任何Web应用程序的首要任务。本文将深入探讨Web安全的重要性以及构建可靠的网络防御体系的关键要素。我们将…...
LeetCode--HOT100题(44)
目录 题目描述:230. 二叉搜索树中第K小的元素(中等)题目接口解题思路代码 PS: 题目描述:230. 二叉搜索树中第K小的元素(中等) 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你…...
大模型调试debug记录
环境:Linux , cuda 11.7 RuntimeError: Distributed package doesnt have NCCL built in 原因:pytorch安装的是cpu版本,需要安装支持gpu版本的 RuntimeError: Distributed package doesnt have NCCL built in - #3 by bdabykov - distrib…...
对话谷歌首席技术官肖恩,搜索引擎的里程碑,来看看搜索引擎界的大哥Algolia的“快、准、狠”突围关键
原创 | 文 BFT机器人 人物背景 Character Background Sean Mullaney是Algolia(端到端人工智能搜索和发现平台)的首席技术官,也是前 Stripe和谷歌高管,拥有扩展工程组织、开发人工智能驱动的搜索和发现工具以及在全球范围内发展A…...
DP读书:鲲鹏处理器 架构与编程(十二)鲲鹏软件实战案例
10min速通了解鲲鹏软件实战案例 云服务器源码移植与编译配置云服务器Porting Advisor代码移植搭建交叉编译环境x86云服务器交叉编译 OpenSSL鲲鹏云服务器上编译 OpenSSL Docker的安装与应用安装DockerDocker运行与验证Docker常用命令卸载Docker安装适配鲲鹏架构的Docker镜像 KV…...
前端 -- 基础 VSCode 工具生成骨架标签新增代码 解释详解
目录 文档类型声明标签 Lang 语言种类 字符集 文档类型声明标签 <!DOCTYPE> 文档类型声明,作用就是告诉浏览器 当前的页面是 使用哪种 HTML 版本 来显示的网页 HTML 版本也很多呀 ,比如 : HTML5 ,HTML4,XHTML 等…...
爬虫逆向实战(二十三)--某准网数据
一、数据接口分析 主页地址:某准网 1、抓包 通过抓包可以发现数据接口是api_to/search/company_v2.json 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现b参数和kiv参数是加密参数 请求头是否加密? 无响应是否加…...
ruoyi--数据权限
这篇文章我先和大家分析一下 RuoYi-Vue 脚手架中 DataScope 注解的实现原理,在 TienChin 项目视频中到时候还会有深入讲解。 1. 思路分析 首先我们先来捋一捋这里的权限实现的思路。 DataScope 注解处理的内容叫做数据权限,就是说你这个用户登录后能够…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...
