kudu 管理运维常用命令
1 | service kudu-master restart |
修复replicas
1 | sudo -u kudu kudu cluster ksck master1,master2,master3 > ./ksck.out 2>&1 |
1 | service kudu-master restart |
1 | sudo -u kudu kudu cluster ksck master1,master2,master3 > ./ksck.out 2>&1 |
Presto 数据源加载机制原生是基于文件系统的,从配置目录中加载 数据源配置文件,从而实现不同源的数据库连接,而且整个过程是在presto集群启动时执行。而我们需要动态的增加/删除 数据源,并且不重启整个presto集群,所以对presto 加载数据源部分做了改造:
新增两个接口,用于向presto/trino 动态的增加和删除数据源:
POST
http://{presto-api-base-url}/v1/catalog/add
DELETE
http://{presto-api-base-url}/v1/catalog/delete
处理的流程图:
将Trino二次开发和调试过程中遇到的问题进行记录
Trino 使用一段时间报错:
1 |
|
重启后正常,应该是发包后没有重启,后续没有出现
Presto是支持Array数据类型的,由于上层应用需要用到Array数据类型,所以当使用不支持Array数据类型的Kudu 作为存储引擎时,需要改造下Kudu 的连接器:
主要的改造思路就是,insert时将数组转换为字符串进行存储,读取时将字符串转换为数组给Presto。
在presto中几乎所有的操作都是依赖于AirLift构造的RESTful服务来完成的,包括worker节点的管理、查询语句的提交、查询状态的显示、各个task之间数据的传递等。因此presto中的RESTful服务是presto集群的基础。
presto中提供了四种类型的RESTful接口,分别是statement服务接口、query服务接口、stage服务接口、task服务接口
与sql语句相关的请求均由该服务接口处理,包括接收提交的sql语句、获取查询执行结果的语句、取消查询语句等。statement服务接口的实现类为StatementResource。
与查询相关 的RESTful请求均由query服务接口处理,包裹sql语句的提交、获取查询执行的结果、取消查询等。query服务接口实现类为QueryResource。
presto服务器进程一共有两种服务器进程:coordinator服务进程和worker服务进程
coordinator服务进程主要作用是:接收查询请求、生成查询执行计划、任务调度和worker管理
worker服务进程则执行被分解后的查询执行计划:task。
本文发表于2019年,但是presto从2013年开始就有了,2019年原作者从Facebook分道扬镳。有关这段爱恨情仇可以在trino官网(presto主流继承版本)中看到。本文的作者是presto的原作者,发表于2019年,此时presto已经是比较成熟完善的系统了,学习的价值更大。
Presto是分布式查询引擎,支持SQL负载。既能承担亚秒级别的交互式查询,也要能支持几小时的ETL任务。
主要特性是:灵活、自适应、扩展性强(支持多个外部源,包括HDFS、RDBMS、NoSQL、流处理系统)。
Presto作为交互式的查询引擎,从2013年诞生开始,已经在Facebook以及世界上众多大公司使用,以满足端上用户交互式查询分析的需求。它主要有以下特性:
需要准备的软件: Java , ssh
下载Haddop:http://www.apache.org/dyn/closer.cgi/hadoop/common/
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,打开终端执行如下命令进行检验:
1 | rpm -qa | grep ssh |
若需要安装,则可以通过 yum 进行安装
1 | sudo yum install openssh-clients |
测试ssh 是否可以用
1 | ssh localhost |
Update your browser to view this website correctly. Update my browser now