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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值