# HuaweiCloud-Trino-plugins
**Repository Path**: HuaweiCloudDeveloper/HuaweiCloud-Trino-plugins
## Basic Information
- **Project Name**: HuaweiCloud-Trino-plugins
- **Description**: 华为云软件对接trino插件
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-02-19
- **Last Updated**: 2025-06-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 使用文档
## 1 项目背景
Trino是一款开源的高性能、分布式SQL查询引擎,专门用于对各种异构数据源运行交互式分析查询,支持从GB到PB的数据量范围。Trino专门为交互式分析而设计,可以对来自不同数据源的数据(包括:Hive、AWS S3、Alluxio、MySQL、Kafka、ES等等)进行合并查询,并提供良好的自定义连接器编程扩展框架。适用于期望响应时间从亚秒到数分钟不等的分析师场景。
本插件的开发,旨在实现OBS与Trino对接。
4. 使配置文件生效
```
source /etc/profile
```
5. 检查配置是否生效,出现java版本信息,代表配置生效
```
java -version
```
2. 上传到服务器 /opt/software 目录下,将其解压即可,无需配置环境变量:
```
cd /opt/software
tar -zxvf hadoop-3.3.5.tar.gz
```
2. 上传到服务器 /opt/software 目录下,将其解压并重命名。
```
cd /opt/software
tar -zxvf apache-hive-3.1.3-bin.tar.gz
mv apache-hive-3.1.3-bin hive-3.1.3
```
3. 配置环境变量
```
# 编辑全局变量文件
vim /etc/profile
```
在最后一行配置以下信息并保存:
```
#HIVE_HOME
export HIVE_HOME=/opt/software/hive-3.1.3
export PATH=$PATH:$HIVE_HOME/bin
```
4. 使配置文件生效
```
source /etc/profile
```
#### 4.4.2 配置hive
1. 将MySQL的JDBC驱动拷贝到Hive的lib目录下:
```
cp /opt/software/ mysql-connector-java-5.1.48.jar $HIVE_HOME/lib
```
2. 在github中下载huawei hadoop的jar包
下载地址: https://github.com/huaweicloud/obsa-hdfs/blob/master/release/hadoop-huaweicloud-3.1.1-hw-53.8.jar
将jar包拷贝到Hive的lib目录下:
```
cp /opt/software/hadoop-huaweicloud-3.1.1-hw-53.8.jar $HIVE_HOME/lib
```
3. 配置hadoop路径
(1)根据hive-env.sh.template文件创建 hive-env.sh文件:
```
cd $HIVE_HOME/conf
cp hive-env.sh.template hive-env.sh
```
(2)修改hive-env.sh文件,最后一行加上hadoop的路径:
```
vim hive-env.sh
# 设置hadoop路径
export HADOOP_HOME=/opt/software/hadoop-3.3.5
```
>备注:不配置这一行,hive metastore无法启动。
1. 配置MySql数据库信息和obs访问信息
(1)新建hive-site.xml文件:
```
cd $HIVE_HOME/conf
vim hive-site.xml
```
(2)配置mysql数据库信息和obs信息,将一下信息复制到hive-site.xml中:
```
日志中看到:SERVER STARTED,即表示trino启动成功。
| 配置项 | 说明 |
|---|---|
| obs.access-key | 默认使用的OBS访问密钥 |
| obs.secret-key | 默认使用的OBS密钥 |
| obs.endpoint | OBS存储节点区域 |
| obs.security-token | 临时AK/SK对应的securityToken |
| obs.path-style-access | 判断是否使用路径访问方式访问OBS服务,true使用路径访问方式,false使用虚拟主机访问方式,默认值:false |
| obs.sse.type | 服务端加密方式,KMS/C/NONE |
| obs.sse.kms-key-id | 服务器端加密时,采取SSE-KMS加密时,用于使用KMS管理的密钥进行OBS服务器端加密的KMS密钥ID。如果未设置,则使用默认密钥。 |
| obs.sse.c-key-base64 | 服务器端加密时,采取SSE-C加密,客户端提供的加密密钥的Base64编码。 |
| obs.streaming.part-size | 设置流式传输的分段大小。默认16MB。最小5MB,最大256MB。 |
| obs.requester-pays | 是否允许启用请求者付费。默认为false。 |
| obs.max-connections | 与OBS的最大连接数 |
| obs.http-proxy | 用于连接到OBS的HTTP代理服务器的URL。 |
| obs.http-proxy.secure | 设置为true可为代理服务器启用HTTPS。 |
| 配置项 | 说明 | 备注 |
|---|---|---|
| hive.obs.access-key | 默认使用的OBS访问密钥 | |
| hive.obs.secret-key | 默认使用的OBS密钥 | |
| hive.obs.endpoint | OBS存储节点区域 | |
| hive.obs.security-token | 临时AK/SK对应的securityToken | |
| hive.obs.storage-class | 写入数据时使用的OBS存储类。目前仅支持STANDARD和WARM存储类。默认存储类别是STANDARD | 存储类别说明详见:https://support.huaweicloud.com/intl/zh-cn/ugobs-obs/obs_41_0006.html |
| hive.obs.path-style-access | 设置是否使用路径访问方式访问OBS服务,true使用路径访问方式,false使用虚拟主机访问方式,默认值:false 注意:如果设置了路径方式,无法使用OBS 3.0版本桶的新特性 | |
| hive.obs.ssl.enabled | 使用HTTPS与OBS API通信(默认为true) | |
| hive.obs.sse.enabled | 服务端加密(默认为false) | |
| hive.obs.sse.type | 服务端加密方式,可选:KMS或C | 加密方式说明详见:https://support.huaweicloud.com/intl/zh-cn/api-obs/obs_04_0105.html |
| hive.obs.sse.kms-key-id | 服务器端加密时,采取SSE-KMS加密时,用于使用KMS管理的密钥进行OBS服务器端加密的KMS密钥ID。如果未设置,则使用默认密钥。 | |
| hive.obs.sse.c-key-base64 | 服务器端加密时,采取SSE-C加密,客户端提供的加密密钥的Base64编码。 | |
| hive.obs.max-client-retries | 最大读重试次数 | |
| hive.obs.max-error-retries | 与OBS通信时遇到错误时尝试重新操作(如读取、写入等)的最大次数;默认5次。 | |
| hive.obs.max-backoff-time | 连续的重试之间允许的最大等待时间;默认10m(10分钟)。 | 可以用 ns\us\ms\s\m\h\d 单位。 |
| hive.obs.max-retry-time | 重试与OBS通信的最长时间,默认10分钟。 | 可以用 ns\us\ms\s\m\h\d 结尾。 |
| hive.obs.connect-timeout | TCP连接超时时间,默认5秒。 | 可以用 ns\us\ms\s\m\h\d 结尾。 |
| hive.obs.socket-timeout | TCP套接字读取超时时间,默认5秒。 | 可以用 ns\us\ms\s\m\h\d 结尾。 |
| hive.obs.max-connections | 与OBS的最大连接数,默认500. | |
| hive.obs.staging-directory | 上传前暂存文件的临时目录,默认使用java.io.tmpdir目录。 | |
| hive.obs.upload-acl-type | 上传文件到OBS时可以使用的ACL,默认private | 访问控制列表说明详见: https://support.huaweicloud.com/intl/zh-cn/perms-cfg-obs/obs_40_0005.html |
| hive.obs.skip-glacier-objects | 忽略Glacier对象,包含COLD、DEEP_ARCHIVE2类存储类别。默认为false。 | https://support.huaweicloud.com/intl/zh-cn/ugobs-obs/obs_41_0006.html |
| hive.obs.requester-pays.enabled | 是否允许启用请求者付费。默认为false。 | |
| hive.obs.streaming.enabled | 是否启用流式传输模式。默认为true。 | |
| hive.obs.streaming.part-size | 设置流式传输的分段大小。默认16M。 | |
| hive.obs.proxy.host | 设置代理服务器地址 | |
| hive.obs.proxy.host | 设置代理服务器端口 | |
| hive.obs.proxy.username | 设置代理用户名 | |
| hive.obs.proxy.password | 设置代理密码 |
4. 编译并安装trino
```
cd trino
# 未指定jdk17为默认jdk环境时,可手动指定
export JAVA_HOME=/opt/software/jdk-17.0.10
# 安装maven依赖,跳过docs.为未避免因网络问题无法下载maven中央仓库jar,可通过 -s 手动指定setings.xml路径
mvn -pl '!docs' clean install -DskipTests -s "/UserPath/apache-maven-3.9.5/conf/settings.xml"
```
备注:官网建议使用
```
./mvnw clean install -DskipTests
```
进行编译,mvnw将自动下载maven文件,并通过maven中央仓库下载依赖包。网络存在问题的情况下会比较慢。
5. 编译trino-obs插件
```
cd trino/plugin/hive-obs
# 打包并跳过test
mvn package -DskipTests
```
编译成功后,trino/plugin/hive-obs/target目录将生成 trino-obs-433.jar文件。
备注:以上 3-5步,可通过IDEA工具进行。
