presto的使用

1.下载 presto-server 和 presto-cli
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.266.1/presto-server-0.266.1.tar.gz
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.266.1/presto-cli-0.266.1-executable.jar
2.解压安装

1.解压 presto-server-0.266.1.tar.gz

tar -zxvf presto-server-0.266.1.tar.gz

2.将 presto-cli-0.266.1-executable.jar 放到bin目录中并改名为 presto

mv presto-cli-0.266.1-executable.jar persto

赋予权限

chmod +x presto

3.在presto 的安装目录下 创建data目录

创建etc目录

mkdir etc

presto的使用

进入etc创建以下文件并添加内容:

node.properties:

node.environment=production

node.id=ffffffff-ffff-ffff-ffff-ffffffffffff-001

node.data-dir=/home/wl/presto-server-0.266.1/data

jvm.config:

-server

-Xmx4G

-XX:+UseG1GC

-XX:G1HeapRegionSize=32M

-XX:+UseGCOverheadLimit

config.properties:

coordinator=true

node-scheduler.include-coordinator=true

http-server.http.port=8080

query.max-memory=2GB

query.max-memory-per-node=1GB

query.max-total-memory-per-node=2GB

discovery-server.enabled=true

discovery.uri=http://wlwl:8080

log.properties:

com.facebook.presto=INFO

在etc下面创建一个 名称为catalog的文件夹

添加以下内容

connector.name=mysql

connection-url=jdbc:mysql://wlwl:3306

connection-user=root

connection-password=wl990922
3.启动
bin/launcher run

出现以下内容说明启动成功

presto的使用

访问wlwl:8080,查看是否能访问web界面

presto的使用

客户端启动

./presto --server wlwl:8080 --catalog mysql
4.常用语法

这里的 mysql 表示的数据库类型

# 展示模式 

SHOW SCHEMAS FROM mysql;

#展示数据库

SHOW TABLES FROM mysql.database_name;

#展示表中的字段

SHOW COLUMNS FROM mysql.database_name.table_name;

#查询表中数据

SELECT * FROM mysql.database_name.table_name;

#使用库

use mysql.presto;
5.添加hive到presto

catalog 文件夹下面创建一个 hive.properties 的文件,并添加以下内容

#连接器的名字,是固定的,hive-hadoop2

connector.name=hive-hadoop2

hive.metastore.uri=thrift://wlwl:9083

hive.config.resources=/home/wl/hadoop-3.3.1/etc/hadoop/core-site.xml,/home/wl/hadoop-3.3.1/etc/hadoop/hdfs-site.xml
6.添加potsgre到presto

安装一个 postgre

参考官网:https://www.postgresql.org/download/linux/redhat/

# Install the repository RPM:

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm



# Install PostgreSQL:

sudo yum install -y postgresql13-server



# Optionally initialize the database and enable automatic start:

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

sudo systemctl enable postgresql-13

sudo systemctl start postgresql-13

进入postgresql发现报以下错误

presto的使用

这个是因为postgresql是不允许使用root用户启动服务的,所以需要切换到 postgres

presto的使用

创建一个postgresql的properties

connector.name=postgresql

connection-url=jdbc:postgresql://127.0.0.1:5432

connection-user=postgres

connection-password=12345
7.多表联查

这里记录一个坑

presto的使用

当我想切换postgresql 提示 postgresql 不存在

这个是因为 我在 catalog 下面建 properties的时候建的是 postgre.properties ,presto读取不到,所以报错

presto的使用

1.在mysql中创建一个名称为emp的表,数据如下

presto的使用

2.在hive中创建一个名称为dep的表,数据如下

presto的使用

3.在postgre中创建一个名称为address的表,数据如下

presto的使用

使用 presto 跨数据源 多表联合查询员工信息

select e.id,e.name,d.dep_name,d.dep_address,p.address_name from emp e left join hive.default.dep d on e.dep_no=d.id left join postgresql.public.address p on p.address_id=e.add_id;

presto的使用

上一篇:第四章:德哥之PostgreSQL应用开发指南2


下一篇:动态的改变程序的主题