Presto簡介
Presto概念
Presto是一個開源的分布式SQL查詢引擎,數據量支持GB到PB字節,主要用來處理秒級查詢的場景
。
注意:雖然Presto可以解析SQL,但它不是一個標准的數據庫。不是MySQL、Oracle的代替品,也不能直接用來處理在線事務(OLTP)
Presto架構
Presto的優缺點
優點
- Presto基於內存計算,減少了硬盤IO,計算更快。
- 能夠連接多個數據源,跨數據源連表查,如從Hive查詢大量網絡訪問計算,然后從MySQL中匹配出設備信息。
缺點
Presto能夠處理PB級別的海量數據分析,但Presto並不是把PB級數據都放在內存中計算的。而是根據場景,如Count,AVG等聚合運算,是邊讀數據邊計算,在清內存
,再讀數據再計算,這種消耗的內存並不會很高。但是連表查,就可能產生大量的臨時數據,因此速速就會變得很慢。
Presto、Impala性能比較
Presto Server安裝
下載Presto安裝包
官方地址:https://prestodb.io/
下載安裝包 https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.219/presto-server-0.219.tar.gz
解壓
tar -zxvf presto-server-0.219.tar.gz -C /data/soft/
生成配置
data用於存儲日志、本地元數據等的數據目錄。建議在安裝目錄外創建一個數據目錄。方便后期Presto進行升級。
mkdir /data/presto/data
在安裝目錄中創建/etc文件夾,並創建以下配置
文件名稱 | 備注 |
---|---|
etc/node.properties | 節點屬性:特定於每個節點的環境配置 |
etc/jvm.config | JVM Config:Java虛擬機的命令選項 |
etc/config.properties | 配置屬性:Presto服務器的配置 |
etc/log.properties | 日志級別配置文件 |
-
node.properties
node.environment=production # 每一個節點的id必須唯一 node.id=presto1 node.data-dir=/opt/presto/data
-
JVM config
-server -Xmx16G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError
-
config.properties(主節點)
coordinator=true node-scheduler.include-coordinator=false http-server.http.port=8881 query.max-memory=50GB discovery-server.enabled=true discovery.uri=http://bigdata02:8881
-
config.properties(從節點)
coordinator=false http-server.http.port=8881 query.max-memory=50GB discovery.uri=http://bigdata02:8881
-
log.properties
com.facebook.presto = INFO
-
/etc/catalog/hive.properties
# 創建catalog文件夾 mkdir catalog # 創建hive.properties vi etc/catalog/hive.properties 加入配置 connector.name=hive-hadoop2 hive.metastore.uri=thrift://bigdata02:9083 (替換為自己的hive metastore的ip和端口) hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml (可選,選擇hdfs-site.xml和core-site.xml)
啟動Hive數據源
nohup hive --service metastore >/dev/null &
啟動
- 前台啟動(各個節點都需要執行啟動腳本)
bin/launcher run
- 后台啟動(各個節點都需要執行啟動腳本)
bin/launcher start
Presti 命令行Client安裝
下載Presto的客戶端
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.196/presto-cli-0.196-executable.jar
修改后綴名稱
mv presto-cli-0.196-executable.jar prestocli
添加執行權限
chmod +x prestocli
啟動prestocli
./prestocli --server bigdata02:8881 --catalog hive --schema default
Presto命令行操作
Presto的命令行操作,相當於Hive命令行操作。每個表必須加上schema