一、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]# llpresto-cli-0.196-executable.jarpresto-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.propertiesnode.environment=productionnode.id=presto01node.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.propertiescoordinator=truenode-scheduler.include-coordinator=truehttp-server.http.port=8083query.max-memory=3GBquery.max-memory-per-node=1GBdiscovery-server.enabled=truediscovery.uri=http://hop01:8083

这里coordinator=true示意以后Presto实例充当协调器角色。

日志配置

[root@hop01 etc]# vim log.propertiescom.facebook.presto=INFO

Catalog属性

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

配置hive适配:

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

配置MySQL适配:

[root@hop01 catalog]# vim mysql.propertiesconnector.name=mysqlconnection-url=jdbc:mysql://192.168.37.133:3306connection-user=rootconnection-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]# llpresto-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

四、源代码地址

GitHub·地址https://github.com/cicadasmile/big-data-parentGitEE·地址https://gitee.com/cicadasmile/big-data-parent

浏览标签

【Java根底】【设计模式】【构造与算法】【Linux零碎】【数据库】

【分布式架构】【微服务】【大数据组件】【SpringBoot进阶】【Spring&Boot根底】

【数据分析】【技术导图】【 职场】