OLAP中怎么使用Presto組件實(shí)現(xiàn)跨數(shù)據(jù)源分析,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
創(chuàng)新互聯(lián)建站總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站維護(hù)、公眾號(hào)搭建、微信小程序開(kāi)發(fā)、軟件開(kāi)發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動(dòng)行銷領(lǐng)域創(chuàng)造價(jià)值而不懈努力!
Presto是一個(gè)開(kāi)源的分布式SQL查詢引擎,適用于交互式分析查詢,數(shù)據(jù)量支持GB到PB字節(jié),Presto雖然具備解析SQL的能力,但它并不屬于標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)范疇。
Presto支持在線數(shù)據(jù)查詢,包括Hive,關(guān)系數(shù)據(jù)庫(kù)以及專有數(shù)據(jù)存儲(chǔ)。一條Presto查詢可以將多個(gè)數(shù)據(jù)源的數(shù)據(jù)進(jìn)行合并,可以跨越整個(gè)組織進(jìn)行分析,Presto主要用來(lái)處理響應(yīng)時(shí)間小于1秒到幾分鐘的場(chǎng)景。
Presto查詢引擎是基于Master-Slave的架構(gòu),運(yùn)行在多臺(tái)服務(wù)器上的分布式系統(tǒng),由一個(gè)Coordinator節(jié)點(diǎn)和多個(gè)Worker節(jié)點(diǎn)組成,Coordinator負(fù)責(zé)解析SQL語(yǔ)句,生成執(zhí)行計(jì)劃,分發(fā)執(zhí)行任務(wù)給Worker節(jié)點(diǎn)執(zhí)行,Worker節(jié)點(diǎn)負(fù)責(zé)實(shí)際執(zhí)行查詢?nèi)蝿?wù)。
Coordinator節(jié)點(diǎn)
Coordinator服務(wù)器是用來(lái)解析查詢語(yǔ)句,執(zhí)行計(jì)劃分析和管理Presto的Worker結(jié)點(diǎn),跟蹤每個(gè)Work的活動(dòng)情況并協(xié)調(diào)查詢語(yǔ)句的執(zhí)行。Coordinator為每個(gè)查詢建立模型,模型包含多個(gè)Stage,每個(gè)Stage再轉(zhuǎn)為Task分發(fā)到不同的Worker上執(zhí)行,協(xié)調(diào)通信基于REST-API,Presto安裝必須有一個(gè)Coordinator節(jié)點(diǎn)。
Worker節(jié)點(diǎn)
Worker負(fù)責(zé)執(zhí)行查詢?nèi)蝿?wù)和處理數(shù)據(jù),從Connector獲取數(shù)據(jù),Worker間會(huì)交換中間數(shù)據(jù)。Coordinator從Worker獲取結(jié)果并返回最終結(jié)果給Client端,當(dāng)Worker啟動(dòng)時(shí)會(huì)廣播自己并發(fā)現(xiàn)Coordinator,告知Coordinator可用狀態(tài),協(xié)調(diào)通信基于REST-API,Presto通常會(huì)安裝多個(gè)Worker節(jié)點(diǎn)。
數(shù)據(jù)源適配
Presto可以適配多種不同的數(shù)據(jù)源,可以和數(shù)據(jù)源連接和交互,Presto是通過(guò)表的完全限定名處理table,Catalog對(duì)應(yīng)類數(shù)據(jù)源,Schema對(duì)應(yīng)數(shù)據(jù)庫(kù),Table對(duì)應(yīng)數(shù)據(jù)表。
Presto中處理的最小數(shù)據(jù)單元是一個(gè)Page對(duì)象,一個(gè)Page對(duì)象包含多個(gè)Block對(duì)象,每個(gè)Block對(duì)象是一個(gè)字節(jié)數(shù)組,存儲(chǔ)一個(gè)字段的若干行,多個(gè)Block橫切的一行是真實(shí)的一行數(shù)據(jù)。
[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.gz
在presto安裝目錄中創(chuàng)建etc文件夾,并添加以下配置信息:
/opt/presto/presto-server-0.189/etc
節(jié)點(diǎn)屬性
每個(gè)節(jié)點(diǎn)的特定環(huán)境配置:etc/node.properties;
[root@hop01 etc]# vim node.properties node.environment=production node.id=presto01 node.data-dir=/opt/presto/data
配置內(nèi)容:環(huán)境名稱,唯一ID,數(shù)據(jù)目錄。
JVM 配置
JVM的命令行選項(xiàng),用于啟動(dòng)Java虛擬機(jī)的命令行選項(xiàng)列表: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服務(wù)器的配置,每個(gè)Presto服務(wù)器都可以充當(dāng)協(xié)調(diào)器和工作器,如果單獨(dú)使用一臺(tái)機(jī)器來(lái)執(zhí)行協(xié)調(diào)工作可以在更大的集群上提供最佳性能,這里PrestoServer既當(dāng)一個(gè)coordinator也是一個(gè)worker節(jié)點(diǎn):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表示當(dāng)前Presto實(shí)例充當(dāng)協(xié)調(diào)器角色。
日志配置
[root@hop01 etc]# vim log.properties com.facebook.presto=INFO
Catalog屬性
/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=123456
啟動(dòng)命令
[root@hop01 /]# /opt/presto/presto-server-0.189/bin/launcher run
啟動(dòng)日志
這樣presto就啟動(dòng)成功了。
[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.jar
java -jar presto-cli.jar --server ip:9000 --catalog mysql --schema sq_export
看完上述內(nèi)容,你們掌握OLAP中怎么使用Presto組件實(shí)現(xiàn)跨數(shù)據(jù)源分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!