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

配置文件​

配置文件中存放 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;  #<==== 改写 URIproxy_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: nginxrules:- host: example.hengshi.comhttp: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' 传给 upstreamsub_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-sensenamespace: hengshiannotations: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: nginxrules:- host: example.hengshi.comhttp:paths:- path: /bi(/|$)(.*)pathType: Prefixbackend:service:name: hengshi-senseport:number: 8080

提示

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

下一页介绍

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

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

相关文章

R18 Enhancements on CHO procedure for NES cell(s)(NES event)

在 R18 Network energy savings(NES) 之cell DTX/DRX https://t.zsxq.com/o1jnp 中有提到DCI format 2_9中的field NES-mode indication,这个field就与另一个NES feature相关,下面就简单看下。 在TR 38.864中有提到Connected mode mobility的内容:在 NES mode switching期间…

标准库、HAL库、LL库

目录 举例理解 概念理解 标准库&#xff08;Standard Peripheral Library&#xff0c;SPL&#xff09; 2. HAL库&#xff08;Hardware Abstraction Layer&#xff09; 3. LL库&#xff08;Low-Layer Library&#xff09; 总结区别 如何选择 实际应用中的结合使用 代码…

根据第七次人口普查数据探索中国平均预期寿命

一&#xff1a;数据介绍 数据来源&#xff1a;预期寿命数据集 - Heywhale.com 该数据提供了中国各地区在第七次人口普查&#xff08;2020年&#xff09;中的平均预期寿命&#xff0c;包括男性和女性的预期寿命。该表具有93行和3列。以下是关于这个数据表的具体信息&#xff1…

设计师私藏的 PDF 转 JPG 利器

你平常会通过扫描来发送文件吗&#xff1f;为了保证图片的清晰度一般都会采用PDF格式来转发&#xff0c;但是要插入到一些文件里的时候PDF格式不是那么好用。这时候就很需要PDF转jpg工具了。今天我就分享几款我用过的PDF转jpg的工具&#xff0c;有兴趣就接着往下看吧。 1.福昕…

蓝牙模块助力游戏设备开启沉浸式娱乐新体验

在当今科技飞速发展的时代&#xff0c;游戏设备正经历着一场前所未有的智能化变革。作为连接虚拟世界与现实体验的重要桥梁&#xff0c;蓝牙模块已经成为游戏设备不可或缺的核心组件之一。它的广泛应用&#xff0c;不仅为玩家提供了更加便捷、流畅的游戏体验&#xff0c;更推动…

python制作石头剪刀布

方法一&#xff1a; import random def rock_paper_scissors(): user_score 100 computer_score 100 while user_score > 0 and user_score < 200: user_choice int(input("请输入1&#xff08;剪刀&#xff09;、2&#xff08;石头&#x…

算子级血缘在金融数据环境的实践应用

在企业的数据管理领域&#xff0c;算子级血缘极大优化了脚本内部字段口径的理解与追踪。面对几十、几百乃至几千行代码的复杂脚本&#xff0c;并且有着各种函数调用、数据转换等复杂的加工逻辑&#xff0c;如果通过传统的 ETL 工作模式&#xff0c;开发人员就不得不采用“盲人摸…

PDF——压缩大小的方法

方法一&#xff1a;QQ浏览器->格式转换->PDF转纯图PDF

从“看”到“管”:EasyCVR安防监控平台如何推动城市管理模式的转型升级

在21世纪的今天&#xff0c;随着城市化进程的加速推进&#xff0c;城市规模不断扩大&#xff0c;人口密集度显著增加&#xff0c;城市管理面临着前所未有的挑战。从公共安全、交通管理到环境保护、应急响应&#xff0c;每一个领域都对城市的治理能力和效率提出了更高要求。在这…

【STM32】DMA数据转运(存储器到外设)

本篇博客重点在于标准库函数的理解与使用&#xff0c;搭建一个框架便于快速开发 目录 前言 外设DMA请求使能 DMA1 DMA2 常用的外设DMA使能库函数 配置串口发送的DMA请求 驱动代码 MyDMA.h MyDMA.c main.c 前言 【STM32】DMA数据转运&#xff08;存储器到存储器&a…

c++----模板(进阶)

也是好久没有更新了今天来将我们前面写过的模板更加升华一下。更加深一下。我们还记得我们前面讲过的模板&#xff0c;只是简单的运用模板而且还是参数类型模板。当然大家如果敏锐一点的话&#xff0c;应该就能看出这句话的问题看吧。我这里说的是参数类型模板&#xff0c;那么…

模仿抖音用户ID加密ID的算法MB4E,提高自己平台ID安全性

先看抖音的格式 对ID加密的格式 MB4EENgLILJPeQKhJht-rjcc6y0ECMk_RGTceg6JBAA 需求是 同一个ID 比如 413884936367560 每次获取得到的加密ID都是不同的&#xff0c;最终解密的ID都是413884936367560 注意这是一个加密后可解密原文的方式&#xff0c;不是单向加密 那么如下进行…

Java在零工市场中的应用:构建灵活高效的劳动力平台

随着数字经济的迅猛发展&#xff0c;零工经济作为一种新兴的劳动力市场模式&#xff0c;正在全球范围内迅速崛起。零工市场通过互联网平台将服务提供者与需求者进行快速匹配&#xff0c;使得个人可以临时、自由地提供服务&#xff0c;企业则能够按需雇佣劳动力&#xff0c;实现…

清理微信一些文件

C盘的微信文件实在是太难搞了&#xff0c;怎么弄怎么麻烦 一般文件保存在手机端或者自己的文件夹更多&#xff0c;要清理呀 不然卡秃噜皮了怎么办是啊不 路径如图

【JAVA入门】Day45 - 压缩流 / 解压缩流

【JAVA入门】Day45 - 压缩流 / 解压缩流 文章目录 【JAVA入门】Day45 - 压缩流 / 解压缩流一、解压缩流二、压缩流 在文件传输过程中&#xff0c;文件体积比较大&#xff0c;传输较慢&#xff0c;因此我们发明了一种方法&#xff0c;把文件里的数据压缩到一种压缩文件中&#x…

Linux与Ubuntu:内核与发行版的关系

在计算机科学的领域内&#xff0c;Linux和Ubuntu这两个术语频繁出现&#xff0c;但它们之间的确切联系往往不为大众所熟知。本文旨在深入探讨Linux内核与Ubuntu操作系统发行版之间的技术关系&#xff0c;并阐明它们各自的独特性质。 Linux内核&#xff1a;操作系统的基石 Lin…

双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的实践应用

查看原文>>> 双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的实践技术应用 目录 专题一、DNDC模型介绍 专题二&#xff1a;DNDC初步操作 专题三、遥感和GIS基础 专题四、DNDC气象数据 专题五、DNDC土地数据 专题六…

项目警告Added non-passive event listener to a scroll-blocking ‘touchstart‘ event.

使用touchstart和touchmove时项目报如下警告&#xff1a; 这个警告信息是由浏览器提供的&#xff0c;主要是为了提醒开发者关注性能问题。在移动设备上&#xff0c;touchstart事件可能会导致滚动操作的响应问题。当你在touchstart事件上添加了一个非被动的监听器&#xff08;即…

统计/nginx/access.log中每个ip的访问次数,按高到低排列

/nginx/access.log具体内容长这样&#xff1a; 第一个元素就是ip。 awk {print $1} /nginx/access.log | sort | uniq -c | sort -r首先&#xff0c;awk {print $1} /nginx/access.log 从 /nginx/access.log文件的每行中提取出第一个字段。然后&#xff0c;sort 对提取出的第…

多线程篇(其它容器- CopyOnWriteArrayList)(持续更新迭代)

一、CopyOnWriteArrayList&#xff08;一&#xff09; 1. 简介 并发包中的并发List只有CopyOnWriteArrayList。 CopyOnWriteArrayList是一个线程安全的ArrayList&#xff0c;对其进行的修改操作都是在底层的一个复制的数 组&#xff08;快照&#xff09;上进行的&#xff0…