【数据仓库】StarRocks docker部署
StarRocks docker部署
- 一、环境准备
- 安装 docker 及 docker-compose
- 操作系统相关禁用及配置【CentOS Linux 7 (Core)】
- 二、StarRocks-v2.5【存算一体,3FE,3BE】
- BE节点配置
- FE节点配置
- 服务启动
- BE节点添加
- FE 节点添加
- 三、监控(待完善)
- 四、VIP + Nginx + Keepalived(待完善)
- 五、StarRocks-v3.2【存算分离,1FE,1CN】
一、环境准备
参考:https://docs.starrocks.io/zh/docs/2.5/deployment/environment_configurations/
安装 docker 及 docker-compose
docker
# 先卸载系统的旧版本
yum remove docker \docker-common \docker-selinux \docker-engine# 设置仓库
yum install -y yum-utils \device-mapper-persistent-data \lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io# docker相关配置
cat > /etc/docker/daemon.json <<EOF
{ "data-root": "/data/docker","storage-driver": "overlay2","exec-opts": ["native.cgroupdriver=systemd"],"live-restore": true,"registry-mirrors": ["https://docker.rainbond.cc","https://docker.m.daocloud.io","https://noohub.ru","https://huecker.io","https://dockerhub.timeweb.cloud","https://3md2h0z0.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://mirror.ccs.tencentyun.com","https://docker.mirrors.ustc.edu.cn","http://f1361db2.m.daocloud.io"],"log-opts": {"max-size":"500m", "max-file":"3"},"log-driver": "json-file"
}
EOF# 启动Docker,设置开机自启动
systemctl start docker
systemctl enable docker
docker-compose
wget https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-Linux-x86_64 -O /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
操作系统相关禁用及配置【CentOS Linux 7 (Core)】
禁用防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
禁用 SELinux
setenforce 0
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
sed -i 's/SELINUXTYPE/#SELINUXTYPE/' /etc/selinux/config
内存设置
cat >> /etc/sysctl.conf << EOF
vm.overcommit_memory=1
EOFsysctl -p
高并发配置
cat >> /etc/sysctl.conf << EOF
vm.max_map_count = 262144
EOFsysctl -pecho 120000 > /proc/sys/kernel/threads-max
echo 200000 > /proc/sys/kernel/pid_max
二、StarRocks-v2.5【存算一体,3FE,3BE】
参考:https://docs.starrocks.io/zh/docs/2.5/deployment/prepare_deployment_files/
各节点先准备好相关配置文件,以及拉取对应镜像(v2.5当前最后一个版本是 2.5.22 但没有docker官方镜像,所以用2.5.21)
- BE:
docker pull starrocks/be-ubuntu:2.5.21 - FE:
docker pull starrocks/fe-ubuntu:2.5.21
BE节点配置
目录
mkdir -pv /data/starrocks/be/conf
cd /data/starrocks/be
./docker-compose.yaml
cat > ./docker-compose.yaml <<EOF
version: '3.7'
services:be:image: starrocks/be-ubuntu:2.5.21container_name: berestart: alwaysnetwork_mode: hostcommand:/opt/starrocks/be/bin/start_be.shvolumes:- ./conf/be.conf:/opt/starrocks/be/conf/be.conf- ./storage:/opt/starrocks/be/storage- ./log:/opt/starrocks/be/log- /etc/localtime:/etc/localtimehealthcheck:test: ["CMD-SHELL","curl -s -w '%{http_code}' -o /dev/null http://127.0.0.1:8040/api/health || bash -c 'kill -s 15 -1 && (sleep 10; kill -s 9 -1)'"]interval: 30stimeout: 20sretries: 3start_period: 3mlogging:driver: "json-file"options:tag: "{{.Name}}"max-size: "10m"
EOF
./conf/be.conf
- priority_networks 改为宿主机网段
其余配置参考:https://docs.starrocks.io/zh/docs/2.5/administration/Configuration/#%E9%85%8D%E7%BD%AE-be-%E9%9D%99%E6%80%81%E5%8F%82%E6%95%B0
cat > ./conf/be.conf <<EOF
# 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
#JAVA_HOME=/usr/local/jdk
# ports for admin, web, heartbeat service
be_port = 9060
webserver_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060# 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.
# 以 CIDR 形式 10.10.10.0/24 指定 BE IP 地址,适用于机器有多个 IP,需要指定优先使用的网络。
priority_networks = 10.101.1.0/24# 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# Advanced configurations
# sys_log_dir = ${STARROCKS_HOME}/log
# sys_log_roll_mode = SIZE-MB-1024
# sys_log_roll_num = 10
# sys_log_verbose_modules = *
# log_buffer_level = -1default_rowset_type = beta
cumulative_compaction_num_threads_per_disk = 4
base_compaction_num_threads_per_disk = 2
cumulative_compaction_check_interval_seconds = 2
routine_load_thread_pool_size = 40
cumulative_compaction_budgeted_bytes=314572800
brpc_max_body_size = 8589934592
trash_file_expire_time_sec=600
mem_limit = 90%
pipeline_max_num_drivers_per_exec_thread=102400
disable_storage_page_cache = true
#disable_column_pool=true
#chunk_reserved_bytes_limit=100000000
EOF
./conf/log4j.properties
cat > ./conf/log4j.properties <<EOF
# log configuration for jars called via JNI in BE
# Because there are almost no other logs except jdbc bridge now, so it's enough to only output to stdout.
# If necessary, we can add special log files later
log4j.rootLogger=ERROR, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
EOF
./conf/hadoop_env.sh
cat > ./conf/hadoop_env.sh <<EOF
# This file is licensed under the Elastic License 2.0. Copyright 2021-present, StarRocks Inc.export HADOOP_CLASSPATH=${STARROCKS_HOME}/lib/hadoop/common/*:${STARROCKS_HOME}/lib/hadoop/common/lib/*:${STARROCKS_HOME}/lib/hadoop/hdfs/*:${STARROCKS_HOME}/lib/hadoop/hdfs/lib/*
if [ -z "${HADOOP_USER_NAME}" ]
thenif [ -z "${USER}" ]thenexport HADOOP_USER_NAME=$(id -u -n)elseexport HADOOP_USER_NAME=${USER}fi
fi# the purpose is to use local hadoop configuration first.
# under HADOOP_CONF_DIR(eg. /etc/ecm/hadoop-conf), there are hadoop/hdfs/hbase conf files.
# and by putting HADOOP_CONF_DIR at front of HADOOP_CLASSPATH, local hadoop conf file will be searched & used first.# local hadoop configuration is usually well-tailored and optimized, we'd better to leverage that.
# for example, if local hdfs has enabled short-circuit read, then we can use short-circuit read and save io timeif [ ${HADOOP_CONF_DIR}"X" != "X" ]; thenexport HADOOP_CLASSPATH=${HADOOP_CONF_DIR}:${HADOOP_CLASSPATH}
fi
EOF
./conf/core-site.xml
cat > ./conf/core-site.xml <<EOF
<configuration><property><name>fs.s3.impl</name><value>org.apache.hadoop.fs.s3a.S3AFileSystem</value></property>
</configuration>
EOF
FE节点配置
目录
mkdir -pv /data/starrocks/fe/conf
cd /data/starrocks/fe
./docker-compose.yaml
cat > ./docker-compose.yaml <<EOF
version: '3.7'
services:fe:image: starrocks/fe-ubuntu:2.5.21container_name: ferestart: alwaysnetwork_mode: hostcommand:/opt/starrocks/fe/bin/start_fe.shvolumes:- ./conf/fe.conf:/opt/starrocks/fe/conf/fe.conf- ./meta:/opt/starrocks/fe/meta- ./log:/opt/starrocks/fe/log- /etc/localtime:/etc/localtimehealthcheck:test: ["CMD-SHELL","curl -s -w '%{http_code}' -o /dev/null http://127.0.0.1:8030/api/bootstrap || bash -c 'kill -s 15 -1 && (sleep 10; kill -s 9 -1)'"]interval: 30stimeout: 20sretries: 3start_period: 3mlogging:driver: "json-file"options:tag: "{{.Name}}"max-size: "10m"
EOF
./conf/fe.conf
- priority_networks:改为宿主机网段
- JAVA_OPTS_FOR_JDK_9:JVM内存根据宿主机合理调整,该配置宿主机总内存为32GB
其余配置参考:https://docs.starrocks.io/zh/docs/2.5/administration/Configuration/#%E9%85%8D%E7%BD%AE-fe-%E9%9D%99%E6%80%81%E5%8F%82%E6%95%B0
cat > ./conf/fe.conf <<EOF
# 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 and stdout
LOG_DIR = ${STARROCKS_HOME}/log
#JAVA_HOME=/usr/local/jdk
DATE = "$(date +%Y%m%d-%H%M%S)"
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:$STARROCKS_HOME/log/fe.gc.log.$DATE"# For jdk 9+, this JAVA_OPTS will be used as default JVM options
#JAVA_OPTS_FOR_JDK_9="-Dlog4j2.formatMsgNoLookups=true -Duser.timezone=GMT+8 -Xmx8g -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xlog:gc*:$STARROCKS_HOME/log/fe.gc.log.$DATE:time"
JAVA_OPTS_FOR_JDK_9="-Dlog4j2.formatMsgNoLookups=true -Duser.timezone=GMT+8 -Xmx8g -XX:+UseG1GC -Xlog:gc*:$STARROCKS_HOME/log/fe.gc.log.$DATE:time"##
## the lowercase properties are read by main program.
### 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}/metahttp_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
mysql_service_nio_enabled = true# 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
# 为那些有多个 IP 地址的服务器声明一个选择策略。
# 请注意,最多应该有一个 IP 地址与此列表匹配。这是一个以分号分隔格式的列表,用 CIDR 表示法,例如 10.10.10.0/24。
# 如果没有匹配这条规则的ip,会随机选择一个。
priority_networks = 10.101.1.0/24# Advanced configurations
# log_roll_size_mb = 1024
# sys_log_dir = ${STARROCKS_HOME}/log
# sys_log_roll_num = 10
# sys_log_verbose_modules =
# audit_log_dir = ${STARROCKS_HOME}/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
max_create_table_timeout_second = 120
report_queue_size = 2048
max_routine_load_task_num_per_be = 40
enable_collect_query_detail_info = true
enable_udf = true
EOF
./conf/core-site.xml
cat > ./conf/core-site.xml <<EOF
<configuration><property><name>fs.s3.impl</name><value>org.apache.hadoop.fs.s3a.S3AFileSystem</value></property>
</configuration>
EOF
./conf/hadoop_env.sh
cat > ./conf/hadoop_env.sh <<EOF
# This file is licensed under the Elastic License 2.0. Copyright 2021-present, StarRocks Inc.export HADOOP_CLASSPATH=${STARROCKS_HOME}/lib/hadoop/common/*:${STARROCKS_HOME}/lib/hadoop/common/lib/*:${STARROCKS_HOME}/lib/hadoop/hdfs/*:${STARROCKS_HOME}/lib/hadoop/hdfs/lib/*
if [ -z "${HADOOP_USER_NAME}" ]
thenif [ -z "${USER}" ]thenexport HADOOP_USER_NAME=$(id -u -n)elseexport HADOOP_USER_NAME=${USER}fi
fi# the purpose is to use local hadoop configuration first.
# under HADOOP_CONF_DIR(eg. /etc/ecm/hadoop-conf), there are hadoop/hdfs/hbase conf files.
# and by putting HADOOP_CONF_DIR at front of HADOOP_CLASSPATH, local hadoop conf file will be searched & used first.# local hadoop configuration is usually well-tailored and optimized, we'd better to leverage that.
# for example, if local hdfs has enabled short-circuit read, then we can use short-circuit read and save io timeif [ ${HADOOP_CONF_DIR}"X" != "X" ]; thenexport HADOOP_CLASSPATH=${HADOOP_CONF_DIR}:${HADOOP_CLASSPATH}
fi
EOF
服务启动
参考:https://docs.starrocks.io/zh/docs/2.5/deployment/deploy_manually/
启动 Leader FE 节点
# 进入某个fe服务器,哪个都可以,一个就行
cd /data/starrocks/fe
docker-compose up -d
# 检查 FE 节点是否启动成功
docker ps
cat ./log/fe.log | grep thrift
启动 BE 节点
在一个 StarRocks 集群中部署并添加至少 3 个 BE 节点后,这些节点将自动形成一个 BE 高可用集群。
# 3个BE节点都启动
cd /data/starrocks/be
docker-compose up -d
# 检查 BE 节点是否启动成功
docker ps
cat ./log/be.INFO | grep heartbeat
BE节点添加
进入 Leader FE
docker exec -it fe mysql -h 127.0.0.1 -P9030 -uroot
查看节点状态
SHOW PROC '/frontends'\G
- 如果字段 Alive 为 true,说明该 FE 节点正常启动并加入集群。
- 如果字段 Role 为 FOLLOWER,说明该 FE 节点有资格被选为 Leader FE 节点。
- 如果字段 Role 为 LEADER,说明该 FE 节点为 Leader FE 节点。
将BE节点添加至集群
-- 将 <be_address> 替换为 BE 节点的 IP 地址(priority_networks)或 FQDN,
-- 并将 <heartbeat_service_port>(默认:9050)替换为您在 be.conf 中指定的 heartbeat_service_port。
ALTER SYSTEM ADD BACKEND "<be_address>:<heartbeat_service_port>", "<be2_address>:<heartbeat_service_port>", "<be3_address>:<heartbeat_service_port>";
-- 查看 BE 节点状态
SHOW PROC '/backends'\G
- 如果字段 Alive 为 true,说明该 BE 节点正常启动并加入集群
FE 节点添加
进入 Leader FE 节点以外的另外两个服务器
向集群中添加新的 Follower FE 节点时,您必须在首次启动新 FE 节点时为其分配一个 helper 节点(本质上是一个现有的 Follower FE 节点)以同步所有 FE 元数据信息。
cd /data/starrocks/fe
# 先不用docker-copmose方式启动
docker run --rm \
--network host \
--privileged=true -it \
-v /data/starrocks/fe/log:/opt/starrocks/fe/log \
-v /data/starrocks/fe/meta:/opt/starrocks/fe/meta \
-v /data/starrocks/fe/conf:/opt/starrocks/fe/conf \
starrocks/fe-ubuntu:2.5.21 bash# 进入了容器
# 这里ip填主节点的 SHOW PROC '/frontends'\G
/opt/starrocks/fe/bin/start_fe.sh --helper 10.101.1.1:9010 --daemon# 查看 FE 日志,检查 FE 节点是否启动成功。先执行下面加入节点再回来查
cat fe/log/fe.log | grep thrift
Leader FE 节点
# 【Leader FE】进入集群,执行加入该ip的节点
ALTER SYSTEM ADD FOLLOWER "10.101.1.2:9010";
# 【Leader FE】集群删除节点
# ALTER SYSTEM DROP follower "10.101.1.2:9010";# 【Leader FE】查看节点状态,字段 Join,Alive 是否为 true
SHOW PROC '/frontends'\G
Follower FE 节点
# 从节点退出容器,使用 docker-compose 启动,其他节点也同样如此操作加入集群
docker-compose up -d
三、监控(待完善)
…
四、VIP + Nginx + Keepalived(待完善)
…
keepalived.service
systemctl status keepalived.service
/etc/keepalived/keepalived.conf
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.locbnd@bndxqc.com.cn}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL_1vrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}
vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 5weight -15
}
vrrp_instance VI_NGINX {state MASTERinterface ens192virtual_router_id 157mcast_src_ip 10.101.1.1priority 120advert_int 1authentication {auth_type PASSauth_pass aaa123456}virtual_ipaddress {10.101.1.7/24}track_script {chk_nginx}
}
五、StarRocks-v3.2【存算分离,1FE,1CN】
存算分离sr3.2
mkdir -p /data/starrocks
cd /data/starrocks
cat > docker-compose.yml <<- 'EOF'
version: "3"
services:minio:container_name: starrocks-minioimage: minio/minio:latestenvironment:MINIO_ROOT_USER: miniouserMINIO_ROOT_PASSWORD: miniopasswordvolumes:- ./minio/data:/minio_dataports:- "9001:9001"- "9000:9000"entrypoint: shcommand: '-c ''mkdir -p /minio_data/starrocks && minio server /minio_data --console-address ":9001"'''healthcheck:test: ["CMD", "mc", "ready", "local"]interval: 5stimeout: 5sretries: 5networks:network:ipv4_address: 10.5.0.6minio_mc:# This service is short lived, it does this:# - starts up# - checks to see if the MinIO service `minio` is ready# - creates a MinIO Access Key that the StarRocks services will use# - exitsimage: minio/mc:latestentrypoint:- sh- -c- |until mc ls minio > /dev/null 2>&1; dosleep 0.5done# 设置别名mc alias set myminio http://minio:9000 miniouser miniopassword# 创建服务账号mc admin user svcacct add --access-key AAAAAAAAAAAAAAAAAAAA \--secret-key BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB \myminio \miniouser# 更新服务账号,设置过期时间为1年后(此处可根据实际需要调整)EXPIRE_DATE=$(date -Iseconds -d '+1 year')mc admin user svcacct update myminio --access-key=AAAAAAAAAAAAAAAAAAAA --expire="${EXPIRE_DATE}Z"depends_on:- minionetworks:network:ipv4_address: 10.5.0.7starrocks-fe:image: starrocks/fe-ubuntu:3.1-latesthostname: starrocks-fecontainer_name: starrocks-feuser: rootvolumes: - ./starrocks/fe/meta:/opt/starrocks/fe/meta- ./starrocks/fe/log:/opt/starrocks/fe/logcommand: >bash -c "echo run_mode=shared_data >> /opt/starrocks/fe/conf/fe.conf &&echo aws_s3_path=starrocks >> /opt/starrocks/fe/conf/fe.conf &&echo aws_s3_endpoint=minio:9000 >> /opt/starrocks/fe/conf/fe.conf &&echo aws_s3_access_key=AAAAAAAAAAAAAAAAAAAA >> /opt/starrocks/fe/conf/fe.confecho aws_s3_secret_key=BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB >> /opt/starrocks/fe/conf/fe.confecho aws_s3_use_instance_profile=false >> /opt/starrocks/fe/conf/fe.conf &&echo cloud_native_storage_type=S3 >> /opt/starrocks/fe/conf/fe.conf &&echo aws_s3_use_aws_sdk_default_behavior=true >> /opt/starrocks/fe/conf/fe.conf &&bash /opt/starrocks/fe/bin/start_fe.sh"ports:- 8030:8030- 9020:9020- 9030:9030healthcheck:test: 'mysql -uroot -h10.5.0.2 -P 9030 -e "show frontends\G" |grep "Alive: true"'interval: 10stimeout: 5sretries: 3depends_on:- minionetworks:network:ipv4_address: 10.5.0.2starrocks-cn:image: starrocks/cn-ubuntu:3.1-latestcommand:- /bin/bash- -c- |sleep 15s;mysql --connect-timeout 2 -h starrocks-fe -P9030 -uroot -e "ALTER SYSTEM ADD COMPUTE NODE \"starrocks-cn:9050\";"/opt/starrocks/cn/bin/start_cn.shports:- 8040:8040hostname: starrocks-cncontainer_name: starrocks-cnuser: rootvolumes:- ./starrocks/cn/storage:/opt/starrocks/cn/storage- ./starrocks/cn/log:/opt/starrocks/cn/logdepends_on:- starrocks-fe- miniohealthcheck:test: 'mysql -uroot -h10.5.0.2 -P 9030 -e "SHOW COMPUTE NODES\G" |grep "Alive: true"'interval: 10stimeout: 5sretries: 3networks:network:ipv4_address: 10.5.0.3
networks:network:driver: bridgeipam:config:- subnet: 10.5.0.0/16gateway: 10.5.0.1
EOFdocker-compose up -d
docker ps
相关文章:
【数据仓库】StarRocks docker部署
StarRocks docker部署 一、环境准备安装 docker 及 docker-compose操作系统相关禁用及配置【CentOS Linux 7 (Core)】 二、StarRocks-v2.5【存算一体,3FE,3BE】BE节点配置FE节点配置服务启动BE节点添加FE 节点添加 三、监控(待完善)四、VIP Nginx Keepalived(待完善)五、Star…...
Java虚拟机面试题:内存管理(下)
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
R语言用逻辑回归贝叶斯层次对本垒打数据与心脏移植数据后验预测检验模拟推断及先验影响分析|附数据代码...
全文链接:https://tecdat.cn/?p40152 在统计学领域中,层次建模是一种极为强大且实用的工具。它能够巧妙地处理复杂的数据结构,通过分层的方式对数据进行建模。在贝叶斯统计的框架内,层次建模优势尽显,其可以有效地融合…...
网页制作02-html,css,javascript初认识のhtml的文字与段落标记
用一首李白的将进酒,对文字与段落标记进行一个简单的介绍演示: 目录 一、标题字 1、标题字标记h 2、标题字对其属性align 二、文本基本标记 1、字体属性face 2、字号属性size 3、颜色属性 Color 三、文本格式化标记 1、粗体标记 b ,strong 2、…...
【SpringBoot苍穹外卖】debugDay04
一、getById 与 new 我在修改数据时,产生疑问,注释掉是我一开始写得,new对象是答案提供的,我就好奇两者之间区别。 1. 使用 setmealMapper.getById 获取现有对象 Setmeal setmeal setmealMapper.getById(setmealDTO.getId()); …...
C++中的顺序容器(一)
文章目录 顺序容器概述所有容器类型都支持的操作迭代器容器定义与初始化将一个容器初始化为另一个容器的拷贝标准库array具有固定大小 赋值和swap关系运算符 顺序容器的特有操作向顺序容器添加元素访问元素删除元素特殊的forward_list操作改变容器的大小容器操作可能是迭代器失…...
【复现DeepSeek-R1之Open R1实战】系列4:跑通GRPO!
目录 1 配置环境2 训练2.1 命令和配置参数2.2 num_generations2.2.1 参数定义2.2.2 参数含义2.2.3 示例2.2.4 使用场景2.2.5 示例代码 2.3 显存占用和耗时 3 结果 1 配置环境 关于环境配置,可以参考这篇博文:【复现DeepSeek-R1之Open R1实战】系列1&…...
Redis原理简述及发布订阅消息队列
目录 1 什么是Redis 2 Redis 非阻塞IO内部原理 2.1 IO多路复用策略 2.2 Reactor设计模式 3 基于PubSub的消息队列(发布-订阅) 由于集群之后存在多台服务器,并且不同客户端连接的可能是不同的服务器,因此在聊天过程中涉及到服…...
ThreadLocal为什么会内存溢出
每个线程(Thread 对象)内部维护一个 ThreadLocalMap,用于存储该线程的所有 ThreadLocal 变量的键值对: ThreadLocalMap虽然是ThreadLocal的静态内部类,但是Thread 对象的属性,当线程存活时ThreadLocalMap不会被回收。 Key:ThreadLocal 实例的 弱引用(WeakReference)。…...
假面与演员:到底是接口在使用类,还是类在使用接口?编程接口与物理接口的区别又是什么?
前言:本篇文章解释了接口学习过程中的2个常见问题,一个是“为什么是类在使用接口”,另一个一个是“编程接口与物理接口的差异源于所处的抽象层次和交互模式的不同”,旨在揭示编程接口的本质。 Part1.是类在使用接口 当学习接口时…...
数据结构——Makefile、算法、排序(2025.2.13)
目录 一、Makefile 1.功能 2.基本语法和相关操作 (1)创建Makefile文件 (2)编译规则 (3)编译 (4)变量 ①系统变量 ②自定义变量 二、 算法 1.定义 2.算法的设计 ÿ…...
算法之 跳跃游戏
文章目录 55.跳跃游戏思路参考:56.合并区间 55.跳跃游戏 55.跳跃游戏 灵神思路 思路分析: 两种思路,思路1是我们可以直接维护当前到达i的时候所能到达的最右的边界mr,如果i>mr就说明无法到达i,否则就是可以到达;…...
C#中的图形渲染模式
在C#中,图形模式通常用于定义如何渲染或处理图形。可以枚举定义如下四种图形模式:AUTO、GDI、DIB 和 FBO。这些模式可能用于指定不同的图形渲染技术或后端。下面是对这些模式的详细解释: 1. AUTO (自动模式) 含义:自动选择最适合…...
二.数据治理流程架构
1、数据治理流程架构核心思想: 该图描绘了一个以数据标准规范体系为核心,大数据生命周期管理为主线,数据资源中心为依托,并辅以数据质量管理和大数据安全与隐私管理的数据治理流程架构。它旨在通过规范化的流程和技术手段&#x…...
瑞萨RA-T系列芯片ADCGPT功能模块的配合使用
在马达或电源工程中,往往需要采集多路AD信号,且这些信号的优先级和采样时机不相同。本篇介绍在使用RA-T系列芯片建立马达或电源工程时,如何根据需求来设置主要功能模块ADC&GPT,包括采样通道打包和分组,GPT触发启动…...
扩散模型中的马尔可夫链设计演进:从DDPM到Stable Diffusion全解析
一、技术原理与数学推导(附核心公式) 1.1 扩散过程数学建模 马尔可夫链前向过程定义: q(x_{1:T}|x_0) \prod_{t1}^T q(x_t|x_{t-1})噪声调度函数(以余弦调度为例): \beta_t \frac{1 - \cos(\pi t/T)}…...
通俗诠释 DeepSeek-V3 模型的 “671B” ,“37B”与 “128K”,用生活比喻帮你理解模型的秘密!
欢迎来到涛涛聊AI。 在DeepSeek-V3模型的参数描述中,你可能会看到类似“671B 37B 128K”这样的标记。这些字母和数字的组合看起来像密码,但其实它们揭示了模型的“大脑容量”和“工作方式”。我们用日常生活的比喻来解释: 一、数字含义&…...
大模型常识:什么是大模型/大语言模型/LLM
本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权) 目录 一、什么是语言模型? 那么什么是语言模…...
iOS 中使用 FFmpeg 进行音视频处理
在 iOS 中使用 FFmpeg 进行音视频处理,通常需要将 FFmpeg 的功能集成到项目中。由于 FFmpeg 是一个 C 库,直接在 iOS 中使用需要进行一些配置和封装。 1. 在 iOS 项目中集成 FFmpeg 方法 1:使用 FFmpeg 预编译库 下载 FFmpeg iOS 预编译库: 可以从以下项目中获取预编译的 …...
SAP-ABAP:SAP的Screen Layout Designer屏幕布局设计器详解及示例
在SAP中,Screen Layout Designer(屏幕布局设计器)是用于设计和维护屏幕(Dynpro)布局的工具。通过Screen Layout Designer,您可以创建和修改屏幕元素(如输入字段、按钮、文本、表格控件等&#x…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
