OLAP引擎:基于Presto组件进行跨数据源分析

网友投稿 277 2022-11-25

OLAP引擎:基于Presto组件进行跨数据源分析

一、Presto概述

1、Presto简介

Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节,Presto虽然具备解析SQL的能力,但它并不属于标准的数据库范畴。

Presto支持在线数据查询,包括Hive,关系数据库以及专有数据存储。一条Presto查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析,Presto主要用来处理响应时间小于1秒到几分钟的场景。

2、Presto架构

Presto查询引擎是基于Master-Slave的架构,运行在多台服务器上的分布式系统,由一个Coordinator节点和多个Worker节点组成,Coordinator负责解析SQL语句,生成执行计划,分发执行任务给Worker节点执行,Worker节点负责实际执行查询任务。

Coordinator节点

Coordinator服务器是用来解析查询语句,执行计划分析和管理Presto的Worker结点,跟踪每个Work的活动情况并协调查询语句的执行。Coordinator为每个查询建立模型,模型包含多个Stage,每个Stage再转为Task分发到不同的Worker上执行,协调通信基于REST-API,Presto安装必须有一个Coordinator节点。

Worker节点

Worker负责执行查询任务和处理数据,从Connector获取数据,Worker间会交换中间数据。Coordinator从Worker获取结果并返回最终结果给Client端,当Worker启动时会广播自己并发现Coordinator,告知Coordinator可用状态,协调通信基于REST-API,Presto通常会安装多个Worker节点。

数据源适配

Presto可以适配多种不同的数据源,可以和数据源连接和交互,Presto是通过表的完全限定名处理table,Catalog对应类数据源,Schema对应数据库,Table对应数据表。

Presto中处理的最小数据单元是一个Page对象,一个Page对象包含多个Block对象,每个Block对象是一个字节数组,存储一个字段的若干行,多个Block横切的一行是真实的一行数据。

二、Presto安装

1、安装包管理

[root@hop01 presto]# pwd /opt/presto [root@hop01 presto]# ll presto-cli-0.196-executable.jar presto-server-0.189.tar.gz [root@hop01 presto]# tar -zxvf presto-server-0.189.tar.gz

2、配置管理

在presto安装目录中创建etc文件夹,并添加以下配置信息:

/opt/presto/presto-server-0.189/etc

节点属性

每个节点的特定环境配置:etc/node.properties;

[root@hop01 etc]# vim node.properties node.environment=production node.id=presto01 node.data-dir=/opt/presto/data

配置内容:环境名称,唯一ID,数据目录。

JVM 配置

JVM的命令行选项,用于启动Java虚拟机的命令行选项列表:etc/jvm.config。

[root@hop01 etc]# vim jvm.config -server -Xmx16G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError

配置属性

Presto服务器的配置,每个Presto服务器都可以充当协调器和工作器,如果单独使用一台机器来执行协调工作可以在更大的集群上提供最佳性能,这里PrestoServer既当一个coordinator也是一个worker节点:etc/config.properties。

[root@hop01 etc]# vim config.properties coordinator=true node-scheduler.include-coordinator=true http-server.http.port=8083 query.max-memory=3GB query.max-memory-per-node=1GB discovery-server.enabled=true discovery.uri=etc]# vim log.properties com.facebook.presto=INFO

Catalog属性

/opt/presto/presto-server-0.189/etc/catalog

配置hive适配:

[root@hop01 catalog]# vim hive.properties connector.name=hive-hadoop2 hive.metastore.uri=thrift://192.168.37.133:9083

配置MySQL适配:

[root@hop01 catalog]# vim mysql.properties connector.name=mysql connection-url=jdbc:mysql://192.168.37.133:3306 connection-user=root connection-password=123456

3、运行服务

启动命令

[root@hop01 /]# /opt/presto/presto-server-0.189/bin/launcher run

启动日志

这样presto就启动成功了。

三、客户端安装

1、Jar包管理

[root@hop01 presto-cli]# pwd /opt/presto/presto-cli [root@hop01 presto-cli]# ll presto-cli-0.196-executable.jar [root@hop01 presto-cli]# mv presto-cli-0.196-executable.jar presto-cli.jar

2、连接MySQL

java -jar presto-cli.jar --server ip:9000 --catalog mysql --schema sq_export

$$End$$

Gitee主页:https://gitee.com/cicadasmile/butte-java-note

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:采用MSP430与CC2420芯片进行无线传感器网络节点的设计
下一篇:深入理解Java设计模式之建造者模式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~