衡石分析平台使用手册-通用配置文档

news2024/11/17 8:35:07

配置文件​

配置文件中存放 HENGSHI SENSE 的配置参数,可以通过修改配置文件来改变 HENGSHI SENSE 的服务方式。

配置文件说明​

配置文件存放在 conf 路径下,包含 hengshi-sense-env.sh 和 engine-segment-hosts 两个文件。其中 engine-segment-hosts 用于存放加速引擎的 segment 表的配置信息,hengshi-sense-env.sh 中存放除加速引擎 segment host 列表外的所有配置项。

提示

如果 conf/hengshi-sense-env.sh 不存在,可通过拷贝 conf/hengshi-sense-env.sh.sample 模板生成这个文件。 配置文件修改后需要重启 HENGSHI 服务才能生效。

加速引擎相关配置​

加速引擎相关配置只有在安装加速引擎时需要配置。

  • 引擎管理模块 master 引擎管理模块 master 是一台独立机器,其 ip 或 hostname 可以通过 conf/hengshi-sense-env.sh 配置文件的 HS_ENGINE_HOST 进行配置。
  • 引擎数据查询模块 segment 引擎数据查询模块 segment 可以配置多台机器,其 ip 或 hostname 通过 conf/engine-segment-hosts 配置文件配置,每一行是一个 segment 的 ip 或 hostname。默认系统会生成只包含 localhost 的配置。

数据目录配置建议​

请参考下面的建议进行数据目录配置。

  • 初始安装时,程序和系统数据至少需要3G 空间。
  • 如果上传文件很多,占用空间很大,建议将 HS_HENGSHI_DATA 目录配置到大磁盘。系统数据、上传数据和加速引擎数据都存储在这个目录下。
  • 如果需要加速引擎给很大的数据加速,建议配置 HS_ENGINE_HOME 目录到大磁盘。配置后引擎加速数据会独立于 HS_HENGSHI_DATA,存储在这个目录下。

常用配置变量说明​

所有配置项都需要写进 conf/hengshi-sense-env.sh 文件。

参数用途
JAVA_HOME运行时 java 的环境目录。
HS_HENGSHI_PORTHENGSHI WEB 服务端口,默认8080。BI 禁止 root 启动,1024以下端口请配置代理转发,如 nginx 等。
HS_HENGSHI_DATAHENGSHI 存储所有数据的根目录,默认在安装目录下,当有大分区专门用于存储数据时,可以配置此变量。
HS_PG_HOST程序内部数据库主机,当不使用衡石 metadb 时可以通过此变量修改配置。
HS_PG_PORT程序内部数据库监听端口,默认为54320,当与现有服务端口冲突可通过此变量更改端口。
HS_PG_DB程序内部数据库的数据库名。
HS_PG_USR程序内部数据库用户名。
HS_PG_PWD程序内部数据库密码。
HS_ENGINE_HOME引擎数据文件路径。
HS_ENGINE_HOST引擎主机,配置后会在对应机器部署引擎的 master 模块,默认为 localhost。
HS_ENGINE_SEGMENTS引擎 worker 节点,数组,默认为(localhost)。多节点时示例为(Node-A Node-B Node-C)。
HS_ENGINE_PORT引擎端口。

衡石启动 jvm 最大内存默认为 6G, 如果需要修改请用 HENGSHI_JAVA_OPTS. 比如像改成最小1G,最大4G,在 conf/hengshi-sense-env.sh 中配置 export HENGSHI_JAVA_OPTS="-Xms1g -Xmx4g"

加密配置文件中的密码​

如果有需求在 conf/hengshi-sense-env.sh 配置文件中只能保存密码密文,可以如下操作

  1. 生成密码的密文 如下会生成密码 'abc123abc123abc123abc123abc123abc123abc123abc123' 的密文

sh

cd /opt/hengshi;
bin/gete.sh "abc123abc123abc123abc123abc123abc123abc123abc123"
#程序输出
U2FsdGVkX1/Ol74LahZWp6HlMspWmBHL5c4/s20Aw7o/z89q9pUITWfE/w2RCAu9
eyjEPtdGLOfXg3OGVcr9CJRPwgmpQWmWHvZ4j1aBmH8=

1
2
3
4
5

  1. 替换配置文件中变量 例如,替换 "HS_PG_RO_PWD" 的配置

sh

HS_PG_RO_PWD="abc123abc123abc123abc123abc123abc123abc123abc123"
#替换为
E_HS_PG_RO_PWD="U2FsdGVkX1/Ol74LahZWp6HlMspWmBHL5c4/s20Aw7o/z89q9pUITWfE/w2RCAu9
eyjEPtdGLOfXg3OGVcr9CJRPwgmpQWmWHvZ4j1aBmH8="

1
2
3
4

注意:如果同时存在明文/密文配置,则密文配置优先生效. 例如同时配置了 HS_PG_RO_PWD 与 E_HS_PG_RO_PWD 则最终 "E_HS_PG_RO_PWD" 生效

  1. 支持密文配置的变量映射
明文变量密文变量
HS_PG_PWDE_HS_PG_PWD
HS_PG_RO_PWDE_HS_PG_RO_PWD
HS_ENGINE_PWDE_HS_ENGINE_PWD
HS_SYSLOG_PWDE_HS_SYSLOG_PWD
HS_ACCESSLOG_PWDE_HS_ACCESSLOG_PWD
QUARTZ_PWDE_QUARTZ_PWD
GREENPLUM_QUERY_PWDE_GREENPLUM_QUERY_PWD
GREENPLUM_ETL_PWDE_GREENPLUM_ETL_PWD
MINIO_ROOT_PASSWORDE_MINIO_ROOT_PASSWORD
REDIS_PASSWORDE_REDIS_PASSWORD

自定义 JDBC 配置​

如果连接的数据源版本在"特殊数据源版本 JDBC 驱动表"中,需要下载对应版本驱动,解压驱动 zip 并将解压内容拷贝到安装目录下的 plugins 目录内,重启 HENGSHI 服务后生效。

特殊数据源版本 JDBC 驱动表:

服务端版本下载地址
hive-1.1https://download.hengshi.com/3rd/hive-1.1-jdbc-minimal.zip

注意

往 plugins 目录内放入 JDBC 驱动后,只能连接对应版本的服务,其他版本的服务不能保证连通。 例如下载 hive-1.1的驱动放置到 plugins 目录下,这时只能保证连接 hive-1.1,对于其他 hive 版本不保证连通性。

上述方法修改的是整个服务的默认 JDBC 驱动,如果需要同时使用两个版本以上的 JDBC 驱动,可以使用如下方法:

  1. 以 hive1.1.1,hive1.1.0,hive1.0.0为例,系统需要默认 hive JDBC 驱动和这三个版本的 hive JDBC 驱动能同时使用。分别解压相应版本的依赖压缩包,把 jar 文件放到 hengshi server 服务器的一个相应目录中,例如/opt/hengshi/jdbc-jar/hive1.1.1,/opt/hengshi/jdbc-jar/hive1.1.0,/opt/hengshi/jdbc-jar/hive1.0.0
  2. 添加配置文件/opt/hengshi/jdbc-jar/jdbc_conf.json,内容如下:

json

[
  {
    // 与相应的数据连接的 options.type 字段相同
    "name":"hive",
    "versions":[
      {
        // 具体版本号
        "version":"1.1.1",
        // jar 包路径
        "jdbcJarPath":"/opt/hengshi/jdbc-jar/hive1.1.1",
        // 驱动主类的全名称,如果和默认版本的类名一致,可以不配置。
        "driverName":"org.apache.hive.jdbc.HiveDriver",
        "configs":{
          // hive1.1不支持 autoCommit 设置,这里为 false。
          // 所有额外的衡石特定配置需要以_hs_开头,以便在构建连接池之前移除这些配置。
          "_hs_set_auto_commit":false
        }
      },
      // 多个版本放在 versions 数组的不同元素下
      {
        "version":"1.1.0",
        "jdbcJarPath":"/opt/hengshi/jdbc-jar/hive1.1.0",
        "driverName":"org.apache.hive.jdbc.HiveDriver",
        "configs":{
          "_hs_set_auto_commit":false
        }
      },
      {
        "version":"1.0.0",
        "jdbcJarPath":"/opt/hengshi/jdbc-jar/hive1.0.0",
        "driverName":"org.apache.hive.jdbc.HiveDriver",
        "configs":{
          "_hs_set_auto_commit":false
        }
      }
    ]
  }
  // 多个不同连接放在最外层数组的不同元素下
  // , {...}
]

  1. 配置文件 conf/hengshi-sense-env.sh 中添加配置项export HENGSHI_JDBC_CONFIG=/opt/hengshi/jdbc-jar/jdbc_conf.json,重启 hengshi 服务
  2. 新建数据连接时,选择对应的版本。default 是指的 hengshi 内部的版本,其他是自定义的驱动版本

注意

  1. 集群部署方式:需要在所有[hengshi]节点下进行上述操作
  2. docker 容器部署方式: 添加配置项操作,对 docker-compose.yaml 配置文件进行修改,在 hengshi>environment 下增加 HENGSHI_JDBC_CONFIG: /opt/hengshi/jdbc-jar/jdbc_conf.json 配置后重启 hengshi 服务
  3. k8s 集群部署方式: jar 包以及配置文件位置,上述 /opt/hengshi/jdbc-jar 目录调整为/opt/hsdata/jdbc-jar 添加配置项操作,对 configmap.yaml 配置文件进行修改,增加 HENGSHI_JDBC_CONFIG: /opt/hengshi/jdbc-jar/jdbc_conf.json 配置后重启 hengshi 服务

shell

# 默认配置为 export FLINK_REST_BIND_ADDRESS=127.0.0.1
# conf/hengshi-sense-env.sh 增加下列配置
export FLINK_REST_BIND_ADDRESS=0.0.0.0 # ip 地址 0.0.0.0 或者服务器本机 ip

注意

Flink Web 界面可通过无密码访问,不建议直接开放公网 flink 端口,直接开放端口可能会增加服务器被恶意攻击风险。 如需使用此功能,建议通过 nginx 等反向代理工具代理后增加配置后访问,避免通过直接访问端口方式访问服务。

二级访问路径配置​

二级路径访问的需求依赖 Nginx 等反向代理工具实现,不同版本有不同的配置方式。

配置方式一​

该配置方式适用 5.0.2 及 5.0.2 以上版本。

Nginx 参考配置​

配置过程中以**/bi**二级路径为例。

  • prefix style

text

   location /bi/ {             #<====[1/3] 路径地址前缀
        proxy_set_header Accept-Encoding "";  #<====[2/3] 不要漏掉,当开启压缩时,需要有此项配置
        proxy_set_header X-HS-Sub-Path "/bi/"; #<====[3/3] /bi/ 路径地址前缀,与 location 声明的一致
        proxy_set_header Host $host;
        proxy_hide_header Access-Control-Allow-Origin;
        proxy_pass http://hengshi-server/;
   }

  • longest matching prefix style

text

   location ^~ /bi/ {             #<====[1/3] 路径地址前缀
        proxy_set_header Accept-Encoding "";  #<====[2/3] 不要漏掉,当开启压缩时,需要有此项配置
        proxy_set_header X-HS-Sub-Path "/bi/"; #<====[3/3] /bi/ 路径地址前缀,与 location 声明的一致
        proxy_set_header Host $host;
        proxy_hide_header Access-Control-Allow-Origin;
        proxy_pass http://hengshi-server/;
   }

  • regex style

text

   location ~ ^/bi {             #<====[1/3] 路径地址前缀
        proxy_set_header Accept-Encoding "";  #<====[2/3] 不要漏掉,当开启压缩时,需要有此项配置
        proxy_set_header X-HS-Sub-Path "/bi/"; #<====[3/3] /bi/ 路径地址前缀,与 location 声明的一致
        proxy_set_header Host $host;
        proxy_hide_header Access-Control-Allow-Origin;
        rewrite ^/bi/(.*) /$1 break;  #<==== 改写 URI
        proxy_pass http://hengshi-server;  #<==== 路径结尾没有 URI,这里是没有结尾的 '/'
   }

Ingress 参考配置​

配置过程中以**/bi**二级路径为例。

yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      proxy_set_header Accept-Encoding "";     #<====[2/3] 不要漏掉,当开启压缩时,需要有此项配置
      proxy_set_header X-HS-Sub-Path "/bi/";   #<====[3/3] /bi/ 路径地址前缀,与 location 声明的一致
spec:
  ingressClassName: nginx
  rules:
    - host: example.hengshi.com
      http:
        paths:
          - path: /bi/     #<====[1/3] 路径地址前缀
            pathType: Prefix

配置方式二​

该配置方式适用 5.0.1 及 5.0 版本。

Nginx 参考配置​

配置过程中以**/bi**二级路径为例。

text

   upstream hengshi-server {
         server 127.0.0.1:8080;
      }

  • prefix style
   location /bi/ {             #<====[1/3] 路径地址前缀,无正则匹配
        proxy_set_header Accept-Encoding "";  #<====[2/3] 不要漏掉,当开启压缩时,需要有此项配置
        proxy_set_header Host $host;
        proxy_hide_header Access-Control-Allow-Origin;
        proxy_pass http://hengshi-server/;
        sub_filter_once on;
        sub_filter '<base href="/">' '<base href="/bi/" />';  #<====[3/3] /bi/ 路径地址前缀,与 location 声明的一致
    }

  • regex style
    location ^/bi/(.*) {             #<====[1/4] 路径地址规则
        proxy_set_header Accept-Encoding "";  #<====[2/4] 不要漏掉,当开启压缩时,需要有此项配置
        proxy_set_header Host $host;
        proxy_hide_header Access-Control-Allow-Origin;
        proxy_pass http://hengshi-server/$1;  #<====[3/4] 将 uri 中路径后面的部分 '$1' 传给 upstream
        sub_filter_once on;
        sub_filter '<base href="/">' '<base href="/bi/" />';  #<====[4/4] /bi/ 路径地址前缀,与 location 声明的一致
    }

  • exact match (此种类型仅能匹配一个 api 地址,不能匹配其他 api,用于特殊场景)
    location = /bi/api/auth/login-info {       #<====[1/4] 完全匹配的路径
        proxy_set_header Accept-Encoding "";  #<====[2/4] 不要漏掉,当开启压缩时,需要有此项配置
        proxy_set_header Host $host;
        proxy_hide_header Access-Control-Allow-Origin;
        proxy_pass http://hengshi-server/api/auth/login-info;  #<====[3/4] 将 upstream 的路径写全
        sub_filter_once on;
        sub_filter '<base href="/">' '<base href="/bi/" />';  #<====[4/4] /bi/ 路径地址前缀,与 location 声明的一致
    }

Ingress 参考配置​

配置过程中以**/bi**二级路径为例。

yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: hengshi-sense
  namespace: hengshi
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      proxy_set_header Accept-Encoding "";
      proxy_hide_header Access-Control-Allow-Origin;
      sub_filter_once on;
      sub_filter '<base href="/">' '<base href="/bi/" />';
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  ingressClassName: nginx
  rules:
    - host: example.hengshi.com
      http:
        paths:
          - path: /bi(/|$)(.*)
            pathType: Prefix
            backend:
              service:
                name: hengshi-sense
                port:
                  number: 8080

提示

CONTEXT_PATH 参数在此版本中已不再生效。

下一页介绍

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

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

相关文章

Qt与VS打包命令

一 QT 将程序编译生成的可执行文件&#xff08;.exe&#xff09;放到一个干净的文件夹。找到QT安装目录&#xff0c;进入编译版本的bin目录&#xff0c;找到windeployqt.exe&#xff0c;在文件访问路径栏的最前边&#xff0c;添加“cmd ”进入控制台。控制台命令&#xff1a; …

K8s 简介以及详细部署步骤

Kubernetes 简介 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个阶段&#xff1a; 1、传统部署 互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xff1a;不能为应用程序定义资源…

【Java面试】第七天

&#x1f31f;个人主页&#xff1a;时间会证明一切. 目录 有三个线程T1,T2,T3如何保证顺序执行&#xff1f;依次执行start方法使用join使用CountDownLatch使用线程池使用CompletableFuture Spring Bean的生命周期是怎么样的&#xff1f;Autowired和Resource的关系&#xff1f;相…

使用Python生成多种不同类型的Excel图表

目录 一、使用工具 二、生成Excel图表的基本步骤 三、使用Python创建Excel图表 柱形图饼图折线图条形图散点图面积图组合图瀑布图树形图箱线图旭日图漏斗图直方图不使用工作表数据生成图表 四、总结 Excel图表是数据可视化的重要工具&#xff0c;它通过直观的方式将数字信…

Linux环境

Linux环境 导语程序参数getoptgetopt_long 环境变量getenv/putenvenviron 时间和日期timedifftime和gmtimectime&asctimestrftime/strptime 临时文件tmpnamtmpfile 获取信息用户主机日志 资源和限制总结参考文献 导语 任何程序都是在一定的环境下运行的&#xff0c;通常这…

分布式事务学习笔记(二)Seata架构、TC服务器部署、微服务集成Seata

文章目录 前言2 Seata2.1 Seata的架构2.2 部署TC服务1&#xff09;下载安装包2&#xff09;解压3&#xff09;修改配置文件4&#xff09;在Nacos中添加TC服务配置5&#xff09;创建数据库表6&#xff09;启动TC服务7&#xff09;查看TC服务 2.3 微服务集成Seata2.3.1 引入依赖2…

通过覆写 url_for 将 flask 应用部署到子目录下

0. 缘起 最近用 flask 写了一个 web 应用&#xff0c;需要部署到服务器上。而服务器主域名已经被使用了&#xff0c;只能给主域名加个子目录进行部署&#xff0c;比如主域名 example.org &#xff0c;我需要在 example.org/flask 下部署。这时 flask 应用里的内部连接们就出现…

sqli-labs Basic Challenge Less_1 通关指南

sqli-labs Basic Challenge Less_1 通关指南 测试注入点测试注入点的数据类型测试过程&#xff1a; 测试返回点&#xff1a;测试列数&#xff1a;测试返回点&#xff1a; 收集数据&#xff1a;版本用户权限库名表名与列名 查找敏感信息 测试注入点 在进行SQL注入之前&#xff…

React js Router 路由 2, (把写过的几个 app 组合起来)

完整的项目&#xff0c;我已经上传了&#xff0c;资源链接. 起因&#xff0c; 目的: 每次都是新建一个 react 项目&#xff0c;有点繁琐。 刚刚学了路由&#xff0c;不如写一个 大一点的 app &#xff0c;把前面写过的几个 app, 都包含进去。 这部分感觉就像是&#xff0c; …

打包部署若依(RuoYi)SpringBoot后端和Vue前端图文教程

打包后端‘ 1&#xff0c;打开若依&#xff0c;点击右侧的Maven展开Maven管理&#xff0c;选择ruoyi>Lifecycle 先双击clean清除原本启动项目时生成的文件。然后点击package等待项目打包&#xff0c;切记要取消运行再打包 打包完成后会在ruoyi-admin>src>target里面…

Qt 边框border - qss样式

border属性 实际上&#xff0c;border并不是一个单独的属性&#xff0c;在Qt样式表中&#xff0c;它通常指的是一系列与边框相关的属性的组合。然而&#xff0c;你也可以在一条样式规则中一次性设置所有这些值&#xff0c;如下所示&#xff1a; QPushButton { border: 2px sol…

HTB-Unified(log4j2漏洞、MongoDb替换管理员密码)

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天给大家讲解Unified靶机 渗透过程 信息搜集 服务器开放了SSH服务&#xff0c;HTTP服务 访问网站 验证log4j2漏洞 8443端口&#xff1a;UniFi 网络 &#xff0c;访问查询 是否有Nday漏洞利用 可以观察到UniFi的版…

汇编实现从1加到1000(《X86汇编语言 从实模式到保护模式(第2版》) 第135页第2题解答)

题目: 编写一段主引导扇区程序,计算从1加到1000的和,并在屏幕上显示结果 输出结果: 代码: jmp near start text db 123...1000 start:mov ax,0x07c0mov ds,ax ;数据段从主引导区开始mov ax,0xb800mov es,ax ;显存地址从B8000物理地址开始mov si,text ;si指向text的第…

linux系统安装miniconda3

一、下载minconda3 下载地址&#xff1a;https://docs.conda.io/en/latest/miniconda.html 一般国内访问比较困难&#xff0c;可到清华软件镜像站 Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 需要特别注意自己的下载版本和自己的…

苹果CMS海洋CMS那个更容易被百度收录?苹果CMS站群

SEO优化和搜索引擎的友好性常常是网站管理员关注的重点。苹果CMS&#xff08;maccmscn&#xff09;和海洋CMS都是国内常见的CMS平台&#xff0c;但在搜索引擎优化&#xff08;SEO&#xff09;和百度收录方面&#xff0c;苹果CMS凭借其优秀的插件生态系统&#xff0c;特别是泛目…

Java 类一口气给你讲完!(✿◡‿◡)

Java 类实例 Java面向对象设计 - Java类实例 以下是创建类的实例的一般语法: new <Class Constructor>;new 运算符后面是对构造函数的调用。 new 运算符通过分配堆上的内存来创建类的实例。以下语句创建Dog类的实例: new Dog();Dog()是对Dog类的构造函数的调用。 当…

PTT:Point Tree Transformer for Point Cloud Registration 论文解读

目录 一、导言 二、相关工作 1、基于Transformer的点云配准 2、针对点云的局部注意力 三、PTT 1、KPconv提取特征 2、Tree Transformer Encoder 3、Decoder 4、估计姿态 5、损失函数 四、实验 1、对比不同Backbone 2、运行时间对比 3、对比不同PTT方法下RR指标的…

[机器学习]决策树

1 决策树简介 2 信息熵 3 ID3决策树 3.1 决策树构建流程 3.2 决策树案例 4 C4.5决策树 5 CART决策树&#xff08;分类&回归&#xff09; 6 泰坦尼克号生存预测案例 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.tree import …

starUML使用说明文档[简单易懂/清晰明了]||好上手

1. 安装 StarUML 首先&#xff0c;您需要从 StarUML 官方网站&#xff08;http://staruml.io/&#xff09;下载最新版本的 StarUML 安装包。然后&#xff0c;按照提示进行安装。&#xff08;联想可以从软件管家里下载&#xff09; 2. 打开 StarUML 安装完成后&#xff0c;双击桌…

mac上Charles怎么配置,可以抓取浏览器/IDEA的接口

一、抓取浏览器接口 1、下载安装Charles后&#xff0c;按下图操作安装证书&#xff0c;mac撒好难过要把证书调整为可信任 2、打开macOS代理 方式一&#xff1a;指点开启这里 方式二&#xff1a;进入代理配置中开启&#xff0c;结果和方式一一样的 3、这时就可以抓取到浏览器…