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]
复制代码

 

 

posted on   嘣嘣嚓  阅读(204)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2017-03-23 Shiro 集成 Web

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示