Presto架构+安装

一、框架概述

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

二、框架架构

presto采用典型的master-slave模型,有一个coordinator节点,一个discovery server节点,多个worker节点组成,discovery server通常内嵌于coordinator节点中
Presto架构+安装_第2张图片
1.coordinator(master)负责meta管理,worker管理,query的解析和调度
2.worker则负责计算和读写
3.discovery server,通常内嵌于coordinator节点中,也可以单独部署,用于节点心跳

三、数据模型

采取三层表结构
Presto架构+安装_第3张图片
1.catalog对应某一类数据源,例如hive的数据,或MySQL的数据
2.schema对应MySQL中的数据库
3.table对应MySQL中的表

四、单机版安装

1.下载

https://prestodb.io/download.html
SERVER:服务
    Master(Coordinator)协调节点
    Workers工作节点
     https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.271/presto-server-0.271.tar.gz
COMMAND LINE INTERFACE
     https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.271/presto-cli-0.271-executable.jar
JDBC DRIVER
    可通过JDBC连接服务,编写DDL、DML及DQL语句,发送执行
     https://repo1.maven.org/maven2/com/facebook/presto/presto-jdbc/0.271/presto-jdbc-0.271.jar

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 [, ...] ) ] 
    options: FORMAT { TEXT | GRAPHVIZ }
             TYPE { LOGICAL | DISTRIBUTED }
DESCRIBE 
SHOW COLUMNS FROM 
SHOW FUNCTIONS SHOW CATALOGS [LIKE ] SHOW SCHEMAS [FROM ] [LIKE ] SHOW TABLES [FROM ] [LIKE ] USE [.] 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]

你可能感兴趣的:(架构,hive,big,data,hadoop,数据库)