OLAP引擎:基于Presto组件进行跨数据源分析
一、Presto概述
1、Presto簡介
Presto是一個開源的分布式SQL查詢引擎,適用于交互式分析查詢,數據量支持GB到PB字節,Presto雖然具備解析SQL的能力,但它并不屬于標準的數據庫范疇。
Presto支持在線數據查詢,包括Hive,關系數據庫以及專有數據存儲。一條Presto查詢可以將多個數據源的數據進行合并,可以跨越整個組織進行分析,Presto主要用來處理響應時間小于1秒到幾分鐘的場景。
2、Presto架構
Presto查詢引擎是基于Master-Slave的架構,運行在多臺服務器上的分布式系統,由一個Coordinator節點和多個Worker節點組成,Coordinator負責解析SQL語句,生成執行計劃,分發執行任務給Worker節點執行,Worker節點負責實際執行查詢任務。
Coordinator節點
Coordinator服務器是用來解析查詢語句,執行計劃分析和管理Presto的Worker結點,跟蹤每個Work的活動情況并協調查詢語句的執行。Coordinator為每個查詢建立模型,模型包含多個Stage,每個Stage再轉為Task分發到不同的Worker上執行,協調通信基于REST-API,Presto安裝必須有一個Coordinator節點。
Worker節點
Worker負責執行查詢任務和處理數據,從Connector獲取數據,Worker間會交換中間數據。Coordinator從Worker獲取結果并返回最終結果給Client端,當Worker啟動時會廣播自己并發現Coordinator,告知Coordinator可用狀態,協調通信基于REST-API,Presto通常會安裝多個Worker節點。
數據源適配
Presto可以適配多種不同的數據源,可以和數據源連接和交互,Presto是通過表的完全限定名處理table,Catalog對應類數據源,Schema對應數據庫,Table對應數據表。
Presto中處理的最小數據單元是一個Page對象,一個Page對象包含多個Block對象,每個Block對象是一個字節數組,存儲一個字段的若干行,多個Block橫切的一行是真實的一行數據。
二、Presto安裝
1、安裝包管理
[root@hop01 presto]# pwd /opt/presto [root@hop01 presto]# ll presto-cli-0.196-executable.jar presto-server-0.189.tar.gz [root@hop01 presto]# tar -zxvf presto-server-0.189.tar.gz2、配置管理
在presto安裝目錄中創建etc文件夾,并添加以下配置信息:
/opt/presto/presto-server-0.189/etc節點屬性
每個節點的特定環境配置:etc/node.properties;
[root@hop01 etc]# vim node.properties node.environment=production node.id=presto01 node.data-dir=/opt/presto/data配置內容:環境名稱,唯一ID,數據目錄。
JVM 配置
JVM的命令行選項,用于啟動Java虛擬機的命令行選項列表:etc/jvm.config。
[root@hop01 etc]# vim jvm.config -server -Xmx16G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError配置屬性
Presto服務器的配置,每個Presto服務器都可以充當協調器和工作器,如果單獨使用一臺機器來執行協調工作可以在更大的集群上提供最佳性能,這里PrestoServer既當一個coordinator也是一個worker節點:etc/config.properties。
[root@hop01 etc]# vim config.properties coordinator=true node-scheduler.include-coordinator=true http-server.http.port=8083 query.max-memory=3GB query.max-memory-per-node=1GB discovery-server.enabled=true discovery.uri=http://hop01:8083這里coordinator=true表示當前Presto實例充當協調器角色。
日志配置
[root@hop01 etc]# vim log.properties com.facebook.presto=INFOCatalog屬性
/opt/presto/presto-server-0.189/etc/catalog配置hive適配:
[root@hop01 catalog]# vim hive.properties connector.name=hive-hadoop2 hive.metastore.uri=thrift://192.168.37.133:9083配置MySQL適配:
[root@hop01 catalog]# vim mysql.properties connector.name=mysql connection-url=jdbc:mysql://192.168.37.133:3306 connection-user=root connection-password=1234563、運行服務
啟動命令
[root@hop01 /]# /opt/presto/presto-server-0.189/bin/launcher run啟動日志
這樣presto就啟動成功了。
三、客戶端安裝
1、Jar包管理
[root@hop01 presto-cli]# pwd /opt/presto/presto-cli [root@hop01 presto-cli]# ll presto-cli-0.196-executable.jar [root@hop01 presto-cli]# mv presto-cli-0.196-executable.jar presto-cli.jar2、連接MySQL
java -jar presto-cli.jar --server ip:9000 --catalog mysql --schema sq_export四、源代碼地址
GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent閱讀標簽
【Java基礎】【設計模式】【結構與算法】【Linux系統】【數據庫】
【分布式架構】【微服務】【大數據組件】【SpringBoot進階】【Spring&Boot基礎】
【數據分析】【技術導圖】【 職場】
總結
以上是生活随笔為你收集整理的OLAP引擎:基于Presto组件进行跨数据源分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 趋势不能deploy的解决方法
- 下一篇: 毕业后的五年拉开大家差距的原因在哪里?