Presto安裝與使用
目錄
一、Presto概述
Presto是由Facebook開發的,是一個執行在多臺伺服器上的分散式查詢引擎,本身並不儲存資料,但是可以接入多種資料來源(Hive、Oracle、MySql、Kafka、Redis等),並且支援跨資料來源的級聯查詢。
Presto是一個開源的分散式SQL查詢引擎,資料量支援GB到PB位元組,主要用來處理秒級查詢的場景。
注意:雖然Presto可以解析SQL,但它不是一個標準的資料庫。不是MySQL、Oracle的代替品,也不能用來處理線上事務(OLTP)。
二、Presto架構
三、Presto優缺點
優勢(相對於Hive):
Presto是一個低延遲高併發的記憶體計算引擎,相比Hive,執行效率要高很多。
Presto以分析師的需求作為目標,他們期望響應時間小於1秒到幾分鐘。 Presto終結了資料分析的兩難選擇,要麼使用速度快的昂貴的商業方案,要麼使用消耗大量硬體的慢速的“免費”方案。
那麼,為什麼presto查詢速度比Hive快?
Presto是常駐任務,接受請求立即執行,全記憶體平行計算;hive需要用yarn做資源排程,接受查詢需要先申請資源,啟動程式,並且採用mapreduce計算模型,中間結果會經過磁碟
四、 Presto、Impala效能比較
https://blog.csdn.net/u012551524/article/details/79124532
測試結論:Impala效能稍領先於Presto,但是Presto在資料來源支援上非常豐富,包括Hive、圖資料庫、傳統關係型資料庫、Redis等。
五、安裝
5.1 Presto Server安裝
-- 1.官網地址
https://prestodb.github.io/
-- 2.下載地址
https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.196/presto-server-0.196.tar.gz
-- 3.將presto-server-0.196.tar.gz匯入hadoop102的/opt/software目錄下,並解壓到/opt/module目錄
[@hadoop102 software]$ tar -zxvf presto-server-0.196.tar.gz -C /opt/module/
-- 4.修改名稱為presto
[@hadoop102 module]$ mv presto-server-0.196/ presto
-- 5.進入到/opt/module/presto目錄,並建立儲存資料資料夾
[@hadoop102 presto]$ mkdir data
-- 6.進入到/opt/module/presto目錄,並建立儲存配置檔案資料夾
[@hadoop102 presto]$ mkdir etc
-- 7.配置在/opt/module/presto/etc目錄下新增jvm.config配置檔案
[@hadoop102 etc]$ vim jvm.config
新增如下內容
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
-- 8.Presto可以支援多個資料來源,在Presto裡面叫catalog,這裡我們配置支援Hive的資料來源,配置一個Hive的catalog
[@hadoop102 etc]$ mkdir catalog
[@hadoop102 catalog]$ vim hive.properties
新增如下內容
connector.name=hive-hadoop2
hive.metastore.uri=thrift://hadoop102:9083
-- 9.將hadoop102上的presto分發到hadoop103、hadoop104
[u@hadoop102 module]$ xsync presto
-- 10.分發之後,分別進入hadoop102、hadoop103、hadoop104三臺主機的/opt/module/presto/etc的路徑。配置node屬性,node id每個節點都不一樣。
[@hadoop102 etc]$ vim node.properties
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=/opt/module/presto/data
[@hadoop103 etc]$ vim node.properties
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-fffffffffffe
node.data-dir=/opt/module/presto/data
[@hadoop104 etc]$ vim node.properties
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-fffffffffffd
node.data-dir=/opt/module/presto/data
-- 11.Presto是由一個coordinator節點和多個worker節點組成。在hadoop102上配置成coordinator,在hadoop103、hadoop104上配置為worker。
(1)hadoop102上配置coordinator節點
[@hadoop102 etc]$ vim 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://hadoop102:8881
(2)hadoop103、hadoop104上配置worker節點
[@hadoop103 etc]$ vim config.properties
新增內容如下
coordinator=false
http-server.http.port=8881
query.max-memory=50GB
discovery.uri=http://hadoop102:8881
[@hadoop104 etc]$ vim config.properties
新增內容如下
coordinator=false
http-server.http.port=8881
query.max-memory=50GB
discovery.uri=http://hadoop102:8881
-- 12.在hadoop102的/opt/module/hive目錄下,啟動Hive Metastore,用atguigu角色
[atguigu@hadoop102 hive]$
nohup bin/hive --service metastore >/dev/null 2>&1 &
-- 13.分別在hadoop102、hadoop103、hadoop104上啟動Presto Server
(1)前臺啟動Presto,控制檯顯示日誌
[@hadoop102 presto]$ bin/launcher run
[@hadoop103 presto]$ bin/launcher run
[@hadoop104 presto]$ bin/launcher run
(2)後臺啟動Presto
[@hadoop102 presto]$ bin/launcher start
[@hadoop103 presto]$ bin/launcher start
[@hadoop104 presto]$ bin/launcher start
-- 14.日誌檢視路徑/opt/module/presto/data/var/log
5.2 Presto命令列Client安裝
-- 1.下載Presto的客戶端
https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.196/presto-cli-0.196-executable.jar
-- 2.將presto-cli-0.196-executable.jar上傳到hadoop102的/opt/module/presto資料夾下
-- 3.修改檔名稱
[@hadoop102 presto]$ mv presto-cli-0.196-executable.jar prestocli
-- 4.增加執行許可權
[@hadoop102 presto]$ chmod +x prestocli
-- 5.啟動prestocli
[@hadoop102 presto]$ ./prestocli --server hadoop102:8881 --catalog hive --schema default
-- 6.Presto命令列操作
Presto的命令列操作,相當於Hive命令列操作。每個表必須要加上schema。
例如:
select * from schema.table limit 100
5.3 Presto視覺化Client安裝
-- 1.將yanagishima-18.0.zip上傳到hadoop102的/opt/module目錄
-- 2.解壓縮yanagishima
[@hadoop102 module]$ unzip yanagishima-18.0.zip
cd yanagishima-18.0
-- 3.進入到/opt/module/yanagishima-18.0/conf資料夾,編寫yanagishima.properties配置
[@hadoop102 conf]$ vim yanagishima.properties
新增如下內容
jetty.port=7080
presto.datasources=atguigu-presto
presto.coordinator.server.atguigu-presto=http://hadoop102:8881
catalog.atguigu-presto=hive
schema.atguigu-presto=default
sql.query.engines=presto
-- 4.在/opt/module/yanagishima-18.0路徑下啟動yanagishima
[@hadoop102 yanagishima-18.0]$
nohup bin/yanagishima-start.sh >y.log 2>&1 &
-- 5.啟動web頁面
http://hadoop102:7080
看到介面,進行查詢了。
-- 6.檢視錶結構
比如執行select * from hive.gmall.ads_user_topic limit 5,這個句子裡Hive這個詞可以刪掉,是上面配置的Catalog
每個表後面都有個複製鍵,點一下會複製完整的表名,然後再上面框裡面輸入sql語句,ctrl+enter鍵或者執行Run按鈕,檢視顯示結果
相關文章
- KubernetesNginxIngress安裝與使用Nginx
- curl 安裝與使用
- MITMF安裝與使用MIT
- Supervisor 安裝與使用
- Samba安裝與使用Samba
- nacos安裝與使用
- Kylin安裝與使用
- Nginx安裝與使用Nginx
- Jenkins安裝與使用Jenkins
- Docker安裝與使用Docker
- golint 安裝與使用Go
- MONGDB 安裝與使用
- DRF安裝與使用
- Redis 安裝與使用Redis
- IDM的安裝與使用
- Jupyter Notebook 使用與安裝
- Go 安裝與使用 mqttGoMQQT
- SpringBoot CLI安裝與使用Spring Boot
- nvm的安裝與使用
- kafka的安裝與使用Kafka
- Linux 安裝Nginx與使用LinuxNginx
- Arthas的安裝與使用
- DrissionPage的安裝與使用
- sqoop 安裝與配置使用OOP
- YALMIP安裝與使用整理
- Zabbix Agent 安裝與使用
- Anaconda的安裝與使用
- PySpark與GraphFrames的安裝與使用Spark
- NodeJs安裝與使用入門NodeJS
- Flink 1.7.0 安裝、配置與使用
- AD元件庫安裝與使用元件
- Memcached安裝與使用例項
- macOS docker/laradock 安裝與使用MacDocker
- Homebrew 換源安裝與使用
- 線上git安裝與使用Git
- window 下 pyenv 安裝與使用
- Android studio的安裝與使用Android
- Linux 下的 Docker 安裝與使用 Docker-compose 安裝LinuxDocker