衡石分析平台使用手册-部署前准备
部署前准备
1.根据版本获取 k8s 部署配置文件。
| 安装版本 | 部署文件 | 组件依赖 |
|---|---|---|
| 3.x | k8s-yaml | metadb、engine、hengshi zookeeper |
| 4.0.x | k8s-yaml | metadb、engine、hengshi、minio、zookeeper |
| 4.1.x | k8s-yaml | metadb、engine、hengshi、minio、redis、flink、zookeeper |
| 4.2.x | k8s-yaml | metadb、engine、hengshi、minio、redis、flink、zookeeper |
| 4.3.x | k8s-yaml | metadb、engine、hengshi、minio、redis、flink、zookeeper |
| 4.4.x | k8s-yaml | metadb、engine、hengshi、minio、redis、flink、zookeeper |
| 4.5.0 ~ 4.5.6 | k8s-yaml | metadb、engine、hengshi、minio、redis、flink |
| 4.5.7 ~ 4.5.x(x>7) | k8s-yaml | metadb、engine、hengshi、minio、redis、flink、apm-server |
| 5.0.x | k8s-yaml | metadb、engine、hengshi、minio、redis、flink、apm-server |
| 5.1.x | k8s-yaml | metadb、engine、hengshi、minio、redis、 |
2.导入离线镜像 修改 image 地址
shell
wget https://download.hengshi.com/releases/hengshi-sense-xxx.tar.gz
docker load -i hengshi-sense-xxx.tar.gz
1
2
提示
除 gpdb 的镜像地址不同,其余组件均替换为导入的离线镜像 tag eg. image: hengshi-sense:5.0-20231103-dp-427c5f image: gpdb:x.x.x k8s/helm 环境需要将镜像推送到集群所使用的镜像仓库,如 registry、harbor、阿里云镜像仓库、腾讯云镜像仓库
3.替换 gpdb.yaml 中的$(POD_NAMESPACE) 变量为当前 namespace, 比如 hengshi
shell
sed -i 's/$(POD_NAMESPACE)/hengshi/'
1
4.修改 pvc
- 修改 storageClassName: xxx, 为当前集群的 storageclass
- 修改 storage: xxx 为各个服务的存储大小
- doris 引擎请修改 doris.yaml
shell
metadb.yaml
gpdb.yaml
redis.yaml
minio.yaml
5.指定 namespace, 比如 hengshi
shell
kubectl create namespace hengshi
engine
部署 engine
如需修改 gpdb 的密码, 需要在两处修改:
- gpdb.yaml
shell
GREENPLUM_PWD: hengshi202020GREENPLUM_QUERY_PWD: query202020GREENPLUM_ETL_PWD: etl202020
1
2
3
- configmap.yaml
shell
HS_ENGINE_PWD: hengshi202020ENGINE_QUERY_PASSWORD: query202020ENGINE_ETL_PASSWORD: etl202020
初始化,并启动 engine。
shell
kubectl -n hengshi apply -f gpdb.yaml
kubectl -n hengshi exec -it master-0 -- /entrypoint.sh -m initsystem
kubectl -n hengshi exec -it master-0 -- /entrypoint.sh -m startsystem
提示
doris 引擎 yaml: doris.yaml 无需 initsystem 和 startsystem 操作
部署其余组件
参考下列部署清单 YAML 文件。
shell
kubectl -n hengshi apply -f configmap.yaml
kubectl -n hengshi apply -f service.yaml
kubectl -n hengshi apply -f metadb.yaml
kubectl -n hengshi apply -f minio.yaml
kubectl -n hengshi apply -f redis.yaml
kubectl -n hengshi apply -f hengshi.yaml
kubectl -n hengshi apply -f ingress.yaml
提示
configmap.yaml hengshi 配置文件 service.yaml 集群内部通信以及对外暴露的 service 文件 ingress.yaml 根据需要决定是否部署 ingress
对外暴露 hengshi 服务
hengshi 提供对外访问的示例配置,可根据需要选择其中之一即可。
nodePort
通过 nodePort 方式暴露 hengshi 服务 ( 默认,如果没有配置 ingress,则可使用 service 对外暴露的 nodePort 端口对外提供服务 ) 。
例如以下示例中的8080所对应集群的 nodePort 映射端口。
shell
apiVersion: v1
kind: Service
metadata:name: hengshi
spec:selector:hsapp: hengshi-sensehsrole: hengshiports:- protocol: TCPname: "8080"port: 8080targetPort: 8080- protocol: TCPname: "5005"port: 5005targetPort: 5005type: NodePort
ingress
通过 ingress 方式对外暴露 hengshi 服务 ( 可选 )。
shell
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: hengshi-sensenamespace: hengshi-senseannotations:ingress.kubernetes.io/force-ssl-redirect: "false"nginx.ingress.kubernetes.io/proxy-connect-timeout: "90"nginx.ingress.kubernetes.io/proxy-send-timeout: "90"nginx.ingress.kubernetes.io/proxy-read-timeout: "90"
spec:ingressClassName: nginxrules:- host: xxxx.hengshi.comhttp:paths:- path: /pathType: Prefixbackend:service:name: hengshi-senseport:number: 8080
提示
ingressClassName: 请修改当前集群的 ingressClass host: 公网域名
基本运维操作
安全停止数据库服务
参考以下命令停止 metadb 和 engine。
shell
kubectl -n hengshi exec -it metadb-0 -- /docker-entrypoint.sh stop metadb single
shell
kubectl -n hengshi exec -it master-0 -- /entrypoint.sh -m stopsystem
重启 engine
参考以下命令重启 engine。
shell
kubectl -n hengshi exec -it master-0 -- /entrypoint.sh gpstop -r
1
清理日志
运行过程中,HENGSHI SENSE 会产生运行日志,这些日志需要定时清理释放存储空间。下面示例是清理内部数据库的滚动日志的命令。
shell
kubectl -n hengshi exec -it master-0 -- /bin/bash
crontab -e # 将下面定时语句写入进去后保存退出
0 0 * * * /opt/hengshi/bin/clean_engine.sh -t -r -c -g -p
*/5 * * * * /opt/hengshi/bin/clean_engine.sh -l
扩容 engine
1.修改 StatefulSet/segment
shell
kubectl -n hengshi edit StatefulSet/segment
- SEGMENTS 字段填写扩容后所有 segment 的 appname (比如2个扩容到4个)
- StatefulSet/segment 的 replicas: 改到扩容后所有 segment 数
shell
apiVersion: v1
kind: ConfigMap
metadata:name: greenplum
data:MASTER: "master-0"SEGMENTS: | #4个 segment 的列表segment-0segment-1segment-2segment-3
...
apiVersion: apps/v1
kind: StatefulSet
metadata:name: segment
spec:replicas: 4 #例如扩容后为4个 segment
- 然后 kubectl -n hengshi apply -f gpdb.yaml
- 然后等待所有新增和旧有 segement pod 的状态都变成 running
2.写 new_host_file (新增 segment 列表, 比如原有2个 segment(0,1), 现扩容到4个 segment(0,1,2,3))
shell
kubectl -n hengshi exec -it master-0 /bin/bash
cd /opt/hsdata/ && mkdir expand && cd expand
cat <<EOF > new_host_file
segment-2
segment-3
EOF
3.执行扩容操作
shell
kubectl -n hengshi exec -it master-0 /bin/bash
cd /opt/hsdata/expand
psql postgres -c "create database expand"
gpexpand -f new_host_file -D expand>y>0 #然后会生成 gpexpand_inputfile_yyyymmdd_xxxxxx 文件
gpexpand -i gpexpand_inputfile_yyyymmdd_xxxxxx -D expand
如果扩容失败,可参考以下命令回滚 engine。
shell
kubectl -n hengshi exec -it master-0 /bin/bash
cd /opt/hsdata/expand
gpstart -aR
gpexpand -r -D expand
engine 数据迁移
1.旧 engine 数据导出
shell
# dump db data
kubectl exec -it $old-gp /bin/bash
source $HS_HOME/engine-cluster
pg_dumpall > /opt/hsdata/engine.back.sql
exit
2.copy 数据到新机器
shell
# cp db data
kubectl cp $old-gp:/opt/hsdata/engine.back.sql engine.back.sql
kubectl cp engine.back.sql $master-0:/opt/hsdata/engine.back.sql
3.导入数据到新环境
shell
# load db data
kubectl exec -it $master-0 /bin/bash
source $HS_HOME/engine-cluster
psql postgres < /opt/hsdata/engine.back.sql
rm /opt/hsdata/engine.back.sql
部署单机版 (POC)
1.修改配置文件为单机配置
执行前确保 configmap.yaml, hengshi.yaml 等配置文件与 config_to_single.sh 在同一个目录下。
shell
./config_to_single.sh
2.部署引擎
参考 引擎部署
3.部署其余组件
参考下列部署清单 YAML 文件。
shell
kubectl -n hengshi apply -f configmap.yaml
kubectl -n hengshi apply -f service.yaml
kubectl -n hengshi apply -f metadb.yaml
kubectl -n hengshi apply -f minio.yaml
kubectl -n hengshi apply -f redis.yaml
kubectl -n hengshi apply -f hengshi.yaml
相关文章:
衡石分析平台使用手册-部署前准备
部署前准备 1.根据版本获取 k8s 部署配置文件。 安装版本部署文件组件依赖3.xk8s-yamlmetadb、engine、hengshi zookeeper4.0.xk8s-yamlmetadb、engine、hengshi、minio、zookeeper4.1.xk8s-yamlmetadb、engine、hengshi、minio、redis、flink、zookeeper4.2.xk8s-yamlmeta…...
AI大模型全栈工程师课程笔记 - RAG 检索增强生成
文章目录 \1. RAG\2. 构建流程 2.1 文档加载与切分2.2 传统检索引擎2.3 LLM接口封装2.4 构建prompt \3. 向量检索\4. 向量数据库\5. 基于向量检索的RAG\6. 进阶知识 6.1 文本分割粒度6.2 检索后再排序6.3 测试 1. RAG RAG(Retrieval Augmented Generation&#…...
【时时三省】c语言例题----华为机试题<进制转换>
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 1,题目 HJ5 进制转换 描述 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。 数据范围:保证结果在 1≤n≤231−1 1≤n≤231−1…...
根据NVeloDocx Word模板引擎生成Word(四)
前面介绍了《E6低代码开发平台》的Word模版引擎NVeloDocx,实现了表单的基本字段、子表、单张图片、二维码、条形码怎么基于NVelocity脚本输出到Word文件,都是些比较简单且常用的需求。 本篇介绍怎么基于NVeloDocx在Word中插入图表,目前只支持…...
C++笔记---stack和queue
1. stack的介绍及重要接口 stack---栈,是一种“先进后出,后进先出”的数据结构。 此处的stack是STL库中定义的一个类模板,用于实例化出存储各种类型数据的栈。 bool empty() const;判断栈是否为空(空true/非空false)size_t size() const;返…...
springboot Rabbit MQ topic 配置文件绑定队列和交换机
Spring Boot 中如何将队列和交换机绑定(含实例讲解) 在使用 Spring Boot 开发高并发的秒杀系统或者其他场景时,RabbitMQ 是常用的消息队列中间件之一。本文将详细讲解如何在配置类中通过代码将队列与交换机绑定,并指定路由键来实…...
Visual Studio 2019密钥
Visual Studio 2019 Enterprise(企业版):BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Professional(专业版):NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y...
【三元组枚举中点】【树状数组】个人练习-Leetcode-1395. Count Number of Teams
题目链接:https://leetcode.cn/problems/count-number-of-teams/description/ 题目大意:给一个数组rating[],求符合以下任一条件的三元组i, j, k的个数 rating[i] < rating[j] < rating[k]rating[i] > rating[j] > rating[k] …...
Anaconda 中遇到CondaHTTPError: HTTP 404 NOT FOUND for url的问题及解决办法
最近在跑一个开源项目遇到了以下问题,查了很多资料都大(抄)同(来)小(抄)异(去)的,解决不了根本问题,费了很大的劲终于得以解决,记录如…...
数据库系统 第51节 数据库事务管理
数据库事务管理是数据库管理系统(DBMS)中用于确保数据完整性和一致性的一组机制。事务是一组不可分割的操作序列,这些操作要么全部成功,要么全部失败。以下是数据库事务管理的关键组成部分的详细叙述: 1. 事务隔离级别…...
分解+优化+组合+对比!核心无忧!VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测
分解优化组合对比!核心无忧!VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测 目录 分解优化组合对比!核心无忧!VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.…...
二十三种设计模式之建造者模式(类比汽车制造厂好理解一些)
目录 1. 设计模式的分类 2. 定义 3. 建造者模式通常包含以下几个角色 4. 示例代码 5. 建造者模式的主要优点 1. 设计模式的分类 创建型模式(五种):工厂方法模式、单例模式、抽象工厂模式、原型模式、建造者模式。 结构型模式(七种):适配器模式、代…...
macos 系统文件操作时提示 Read-only file system 解决方法
这个情况是因为文件系统为只读, 需要我们执行一下命令重新将系统文件挂载为读写模式, 命令如下: sudo mount -uw / 这里的 mount 就是硬盘挂载命令, 后面的 -uw选项说明如下, 最后的 / 表示的是跟目录, 可以指定要修改的挂载路径,也可以默认. -u -u标志表示应更改已装载文…...
银行业务架构指导应用架构规划及设计方法
摘要 业务架构指导应用架构设计方法是指依托业务架构设计成果,开展应用架构应用划分设计、IT服务分层设计和数据模型设计的方法。通过业务架构指导应用架构设计,以IT研发项目驱动的方式,由IT系统落地业务架构设计成果,实现对业务流程快速拼接和产品灵活配置的支持,从而提升…...
最全面IO流介绍
1.字符集介绍 标准ASCII字符集:使用1个字节存储一个字符,首尾是0,总可以表示128个字符。是美国信息交换标准代码,包含英文、符号等等。 GBK汉字编码字符集,包含2万多个汉字等字符,GBK中一个中文字符编码成…...
fastadmin 文件上传腾讯云
1-安装腾讯云SDK composer require qcloud/cos-sdk-v5 2-腾讯云配置 <?phpnamespace app\common\controller;use Qcloud\Cos\Client; use think\Controller; use think\Db;class Tencent extends Controller {/*** 上传文件* param $config* param $key* return array*/p…...
《机器学习》—— PCA降维
文章目录 一、PCA降维简单介绍二、python中实现PCA降维函数的介绍三、代码实现四、PCA降维的优缺点 一、PCA降维简单介绍 PCA(主成分分析,Principal Component Analysis)是一种常用的数据降维技术。它通过线性变换将原始数据转换到新的坐标系…...
植物三萜皂苷生物合成途径及调控机制研究进展-文献精读48
摘要 三萜皂苷(triterpenoids saponins)是由三萜皂苷元和一个或多个糖基和/或其他化学基团缩合而成的一系列结构多样的天然化合物[1], 主要分布在五加科、蝶形花科、石竹科、桔梗科、毛茛科、玄参科、葫芦科等植物中[2]. 植物中三萜皂苷常分布在特定的器官和组织, 如人参(Pana…...
server 2016搭建FTP服务
目录 一、实验环境 二、在server 2016上面安装FTP服务 三、在server 2016上面配置FTP服务 四、创建用户(也可创建用户组,给用户组赋予权限) 一、实验环境 windows server 2016用于安装ftp服务 windows 10作为客户端进行测试。 二、在s…...
物理学基础精解【4】
文章目录 运动和力质点运动机械运动的参考系运动的相对性运动学中坐标系 参考文献 运动和力 质点运动 一个物体相对于另一个物体的位置或一个物体的某些部分相对于其他部分的位置 ,随着时间而变化的过程,叫机械运动 。质点是一个物理学中的理想化模型&…...
「5 个 Markdown 文件 + 1 句提示词」让 AI 精准重构你的 React 组件 | 附完整模板
这个场景你一定经历过: 你给 ChatGPT/Claude 一个又臭又长的 React 组件,说:"帮我重构一下,让它更清晰。" 结果要么: 改错了交互逻辑,导致功能崩溃改变了接口契约,后端完全适配不了代…...
WPF颜色转换器实战:如何用ConverterParameter动态切换UI主题色(附完整代码)
WPF颜色转换器实战:如何用ConverterParameter动态切换UI主题色(附完整代码) 在WPF应用开发中,动态主题切换是提升用户体验的关键功能之一。想象一下,你的应用能够根据用户偏好或系统设置实时切换明暗主题,甚…...
航拍小目标检测入门必看:YOLOv8 VisDrone实战第一阶段,基线mAP从32%提升至58%
本文是YOLOv8 VisDrone航拍目标检测全系列实战的第一阶段,基于我3年智慧城市、无人机安防项目的一线落地经验,针对VisDrone航拍场景最核心的「小目标密集、尺度变化大、类别分布不均、遮挡严重」四大痛点,完整拆解从0到1搭建基线模型的全流程。 本文全程配套VisDrone数据集…...
从拖拽到对话:衡石Agentic BI如何重构企业数据分析的交互范式
传统BI的交互困局在商业智能发展史上,2025年或许会被标记为一个转折点。这一年,衡石科技发布的HENGSHI SENSE 6.0 Agentic BI平台,标志着数据分析从"被动工具"正式迈入"主动智能体"时代。过去二十年,"拖拽生成报表"一直被奉为BI工具的黄金标准。…...
Depth Pro:重新定义单目深度估计的速度与精度边界
Depth Pro:重新定义单目深度估计的速度与精度边界 【免费下载链接】ml-depth-pro Depth Pro: Sharp Monocular Metric Depth in Less Than a Second. 项目地址: https://gitcode.com/gh_mirrors/ml/ml-depth-pro 技术原理:如何让机器真正"看…...
告别阿里云!用ThingsCloud免费搭建个人智能家居控制中心(附ESP8266配置)
从零构建智能家居控制中心:ThingsCloud与ESP8266实战指南 在智能家居领域,许多技术爱好者常常面临一个两难选择:要么使用功能强大但配置复杂的商业平台,要么选择简单但功能有限的DIY方案。ThingsCloud的出现为这一问题提供了优雅的…...
在openKylin下安装配置GitLab遇到的问题及解决方案(v0.1.0)
作者:沈传越 明德融创工作室(Minter Fusion Studio, MFS) 出品 本文安装的GitLab-ce 15.10.0版。操作系统openKylin 2.0 SP2。 一、安装GitLab-ce依赖软件时报错 1. 错误描述 在执行sudo apt-get install curl openssh-server ca-certifi…...
Vivado进阶指南:网表物理约束实战解析
1. 网表物理约束的核心价值 第一次接触Vivado的网表物理约束时,我和很多初学者一样困惑:明明RTL代码已经定义了所有功能,为什么还要多此一举?直到在某次高速ADC数据采集项目中,系统频繁出现时序违例,我才真…...
打开软件就弹出d3dcompiler_43.dll丢失找不到 免费下载修复方法分享
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…...
G-Helper终极指南:华硕ROG笔记本性能优化神器完全解析
G-Helper终极指南:华硕ROG笔记本性能优化神器完全解析 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址…...
