Presto架构+安装
一、框架概述
presto是一款Facebook开源的MPP架构的OLAP查询引擎,可针对不同数据源执行大容量数据集的一款分布式SQL执行引擎。适用于交互式分析查询,数据量支持GB到PB字节
1.清洗的架构,是一个能够独立运行的系统,不依赖于任何其他外部系统。例如调度,presto自身提供了对集群的监控,可以根据监控信息完成调度
2.简单的数据结构,列式存储,逻辑行,大部分数据都可以轻易的转化成presto所需要的这种数据结构
3.丰富的插件接口,完美对接外部存储系统,或者添加自定义的函数
Facebook公司研发了hive,但是hive底层是转换成MR任务,频繁和磁盘打交道,很慢,所以又研发了presto,presto是基于内存的分布式计算引擎,是将SQL转换成task,支持多数据源,处理任意地方的数据,通常会集成hive,使用hive管理元数据

二、框架架构
presto采用典型的master-slave模型,有一个coordinator节点,一个discovery server节点,多个worker节点组成,discovery server通常内嵌于coordinator节点中

1.coordinator(master)负责meta管理,worker管理,query的解析和调度
2.worker则负责计算和读写
3.discovery server,通常内嵌于coordinator节点中,也可以单独部署,用于节点心跳
三、数据模型
采取三层表结构

1.catalog对应某一类数据源,例如hive的数据,或MySQL的数据
2.schema对应MySQL中的数据库
3.table对应MySQL中的表
四、单机版安装
1.下载
SERVER:服务
Master(Coordinator)协调节点
Workers工作节点
COMMAND LINE INTERFACE
JDBC DRIVER
可通过JDBC连接服务,编写DDL、DML及DQL语句,发送执行
2.安装JDK(1.8)
3.解压presto安装包
tar -zxvf presto-server-0.271.tar.gz ln -s presto-server-0.271 presto
创建配置文件存储目录
mkdir -p /Users/FengZhen/Desktop/Hadoop/presto/presto/etc
4.配置
etc下
4.1 vim config.properties
coordinator=true node-scheduler.include-coordinator=true http-server.http.port=8090 query.max-memory=6GB query.max-memory-per-node=2GB query.max-total-memory-per-node=2GB discovery-server.enabled=true discovery.uri=http://localhost:8090
4.2 vim jvm.config
-server -Xmx3G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError
4.3 vim node.properties
node.environment=hudipresto node.id=presto-node1 node.data-dir=/Users/FengZhen/Desktop/Hadoop/presto/presto/data
4.4 配置hive相关
mkdir catalog vim catalog/hive.properties connector.name=hive-hadoop2 hive.metastore.uri=thrift://localhost:9083 hive.parquet.use-column-names=true hive.config.resources=/Users/FengZhen/Desktop/Hadoop/presto/presto/etc/catalog/core-site.xml,/Users/FengZhen/Desktop/Hadoop/presto/presto/etc/catalog/hdfs-site.xml
4.5配置MySQL相关
vim catalog/mysql.properties
connector.name=mysql connection-url=jdbc:mysql://localhost:3306 connection-user=root connection-password=1234qwer
5.启动服务
presto/bin/launcher start
进程名:PrestoServer
6.安装Presto CLI命令行客户端
将presto-cli-0.271-executable.jar放到bin目录下
mv presto-cli-0.271-executable.jar presto chmod +x presto
启动测试
presto --server localhost:8090 MacBook-Pro:bin FengZhen$ ./presto --server localhost:8090 presto> help Supported commands: QUIT EXPLAIN [ ( option [, ...] ) ] <query> options: FORMAT { TEXT | GRAPHVIZ } TYPE { LOGICAL | DISTRIBUTED } DESCRIBE <table> SHOW COLUMNS FROM <table> SHOW FUNCTIONS SHOW CATALOGS [LIKE <pattern>] SHOW SCHEMAS [FROM <catalog>] [LIKE <pattern>] SHOW TABLES [FROM <schema>] [LIKE <pattern>] USE [<catalog>.]<schema> presto> show catalogs; Catalog --------- hive mysql system (3 rows) Query 20220323_140341_00001_q2hp8, FINISHED, 1 node Splits: 19 total, 19 done (100.00%) 0:04 [0 rows, 0B] [0 rows/s, 0B/s] presto> show schemas from hive; Schema -------------------- db_hudi default information_schema (3 rows) Query 20220323_140422_00003_q2hp8, FINISHED, 1 node Splits: 19 total, 19 done (100.00%) 0:03 [3 rows, 47B] [1 rows/s, 18B/s]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2017-03-23 Shiro 集成 Web