2 Star 1 Fork 1

大数据老司机/trino-on-kubernetes

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

一、概述

Trino on Kubernetes(Trino在Kubernetes上的部署)是将Trino查询引擎与Kubernetes容器编排平台相结合,以实现在Kubernetes集群上部署、管理和运行Trino的解决方案。

Trino(之前称为Presto SQL)是一个高性能的分布式SQL查询引擎,旨在处理大规模数据集和复杂查询。Kubernetes是一个流行的开源容器编排平台,用于自动化容器的部署、扩展和管理。

将Trino部署在Kubernetes上可以带来一些优势:

  • 弹性扩展:Kubernetes提供了自动化的容器扩展功能,可以根据工作负载的需求自动增加或减少Trino的实例数。这样,可以根据查询负载的变化进行弹性伸缩,提高性能和资源利用率。

  • 高可用性:Kubernetes具有容错和故障恢复的能力。通过在Kubernetes集群中部署多个Trino实例,可以实现高可用性架构,当其中一个实例失败时,其他实例可以接管工作,保证系统的可用性。

  • 资源管理:Kubernetes提供了资源调度和管理的功能,可以控制Trino实例使用的计算资源、存储资源和网络资源。通过适当配置资源限制和请求,可以有效地管理Trino查询的资源消耗,防止资源冲突和争用。

  • 简化部署和管理:Kubernetes提供了声明性的配置和自动化的部署机制,可以简化Trino的部署和管理过程。通过使用Kubernetes的标准工具和API,可以轻松地进行Trino实例的创建、配置和监控。

  • 生态系统整合:Kubernetes具有丰富的生态系统和集成能力,可以与其他工具和平台进行无缝集成。例如,可以与存储系统(如Hadoop HDFS、Amazon S3)和其他数据处理工具(如Apache Spark)集成,实现数据的无缝访问和处理。

需要注意的是,将Trino部署在Kubernetes上需要适当的配置和调优,以确保性能和可靠性。此外,对于大规模和复杂的查询场景,可能需要考虑数据分片、数据划分和数据本地性等方面的优化。

总之,Trino on Kubernetes提供了一种灵活、可扩展和高效的方式来部署和管理Trino查询引擎,使其能够更好地适应大数据环境中的查询需求。

这里只是讲解部署过程,想了解更多的trino的内容,可参考我以下几篇文章:

如果想单机容器部署,可以参考我这篇文章:【大数据】通过 docker-compose 快速部署 Presto(Trino)保姆级教程

输入图片说明

二、开始部署

1)安装 git

# 1、安装 git
yum -y install git 

2)下载trino安装包

git clone git@github.com:HBigdata/trino-on-kubernetes.git
cd trino-on-kubernetes

3)配置数据源

cat -n values.yaml

输入图片说明

3)配置资源限制 requests 和 limits

输入图片说明

4)修复 trino 配置

输入图片说明 JVM 内存配置 输入图片说明

5)开始部署

# git clone git@github.com:HBigdata/trino-on-kubernetes.git
# cd trino-on-kubernetes

# 安装
helm install trino ./ -n trino --create-namespace

# 更新
helm upgrade trino ./ -n trino

# 卸载
helm uninstall trino -n trino

6)测试验证

coordinator_name=`kubectl get pods -n trino|grep coordinator|awk '{print $1}'`

# 登录
kubectl exec -it $coordinator_name -n trino -- ${TRINO_HOME}/bin/trino-cli --server http://trino-coordinator:8080 --catalog=hive --schema=default --user=hadoop

# 查看数据源
show catalogs;
# 查看mysql库
show schemas from hive;
# 查看表
show tables from hive.default;

create schema hive.test;

# 创建表
CREATE TABLE hive.test.movies (
  movie_id bigint,
  title varchar,
  rating real, -- real类似与float类型
  genres varchar,
  release_year int
)
WITH (
  format = 'ORC',
  partitioned_by = ARRAY['release_year'] -- 注意这里的分区字段必须是上面顺序的最后一个
);

#加载数据到Hive表
INSERT INTO hive.test.movies
VALUES 
(1, 'Toy Story', 8.3, 'Animation|Adventure|Comedy', 1995), 
(2, 'Jumanji', 6.9, 'Action|Adventure|Family', 1995), 
(3, 'Grumpier Old Men', 6.5, 'Comedy|Romance', 1995);

# 查询数据
select * from hive.test.movies;

输入图片说明

到这里完成 trino on k8s 部署和可用性演示就完成了,有任何疑问请关注我公众号:大数据与云原生技术分享,加群交流或私信沟通,如本篇文章对您有所帮助,麻烦帮忙一键三连(点赞、转发、收藏)~

输入图片说明

空文件

简介

trino-on-kubernetes 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Docker
1
https://gitee.com/hadoop-bigdata/trino-on-kubernetes.git
git@gitee.com:hadoop-bigdata/trino-on-kubernetes.git
hadoop-bigdata
trino-on-kubernetes
trino-on-kubernetes
master

搜索帮助