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

image

進入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

出現以下內容說明啟動成功

image

訪問wlwl:8080,查看是否能訪問web界面

image

客戶端啟動

./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發現報以下錯誤

image

這個是因為postgresql是不允許使用root用戶啟動服務的,所以需要切換到 postgres

image

創建一個postgresql的properties

connector.name=postgresql

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

connection-user=postgres

connection-password=12345
7.多表聯查

這里記錄一個坑

image

當我想切換postgresql 提示 postgresql 不存在

這個是因為 我在 catalog 下面建 properties的時候建的是 postgre.properties ,presto讀取不到,所以報錯

image

1.在mysql中創建一個名稱為emp的表,數據如下

image

2.在hive中創建一個名稱為dep的表,數據如下

image

3.在postgre中創建一個名稱為address的表,數據如下

image

使用 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;

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM