日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

本文介紹使用Trino時(shí)的常見問題。

Trino與Presto的區(qū)別與聯(lián)系是什么?

Trino的前身是PrestoSQL,是Presto的創(chuàng)始人團(tuán)隊(duì)從Facebook脫離之后成立的商業(yè)公司Starburst旗下的開源產(chǎn)品,于2021年正式更名為Trino。相應(yīng)的,Presto依然由Facebook負(fù)責(zé)維護(hù),一般被稱為PrestoDB。在分離之后,二者具有不同的發(fā)展方向。但是基本語法和使用方式相似。

EMR-3.44.0和EMR-5.10.0版本開始改用社區(qū)正式名稱Trino,之前各版本控制臺顯示為Presto,內(nèi)核其實(shí)是Trino,使用時(shí)請注意區(qū)分。

Trino的各個(gè)版本有什么區(qū)別?

Trino各個(gè)版本的內(nèi)容變化,可參見Trino官方更新日志。Trino的性能表現(xiàn)隨著版本更新存在一些優(yōu)化,因此建議您盡量選擇較新版本。

Trino在EMR上的部署形態(tài)是什么樣的?是否支持高可用?

Trino具有標(biāo)準(zhǔn)的M/S架構(gòu),其Coordinator部署在master-1-1節(jié)點(diǎn)上;Worker部署在所有Core或Task節(jié)點(diǎn)上。

Trino目前不支持高可用。在高可用集群上,Trino僅在master-1-1節(jié)點(diǎn)上部署Coordinator。在創(chuàng)建集群時(shí),如果您不需要混合部署Hadoop,只選用Trino服務(wù)即可。

重要

如果您不需要混合部署Hadoop,請注意不要開啟高可用開關(guān),避免造成浪費(fèi)。

Trino如何連接DLF?開啟了DLF后是否還能連接MetaStore?默認(rèn)提供的連接器不夠用怎么辦?

3.45.0之前版本和5.11.0之前版本的DataLake集群,如果創(chuàng)建集群時(shí)選中了Hive服務(wù),且選擇了DLF元數(shù)據(jù),hive、iceberg、hudi、delta lake等連接器將直接指向DLF,可直接使用;如果集群中不包含Hive服務(wù),可參見配置數(shù)據(jù)湖元數(shù)據(jù)自行配置。3.45.0及之后版本和5.11.0及之后版本的DataLake集群可在創(chuàng)建Trino集群時(shí)選擇DLF元數(shù)據(jù)。

對于開啟了DLF之后的集群,默認(rèn)的hive等連接器將無法訪問MetaStore。如果您有配置多Hive MetaStore、多MySQL的需求,或默認(rèn)提供的連接器不包含您想要使用的服務(wù)時(shí),您可以使用EMR Trino提供的5個(gè)占位連接器,即connector1~connector5,您可以選擇其中任意一個(gè),將其connector.name配置為hive或您所需要的連接器,再參考相應(yīng)連接器的文檔增添其他配置項(xiàng),指向所需的服務(wù)地址。

Trino如何訪問OSS?是否支持OSS-HDFS?

EMR默認(rèn)安裝了Jindo SDK,且支持免密。您可以使用OSS的標(biāo)準(zhǔn)訪問方法直接訪問OSS,也可查詢存儲于OSS上的Hive表。

EMR Trino支持OSS-HDFS。

如何訪問Trino UI?如何理解Trino UI?

如果您的集群安裝了Knox服務(wù),可以使用Knox鏈接訪問Trino UI,詳情請參見Knox

如果您的集群不包含Knox,可以使用公網(wǎng)鏈接,即訪問{公網(wǎng)IP:HTTP端口}進(jìn)入U(xiǎn)I。其中,HTTP端口可從http-server.http.port配置中獲取,默認(rèn)為9090。如果無法進(jìn)入,請確認(rèn)9090端口的安全組已開放。

如果您的集群啟用了高安全模式,默認(rèn)的HTTP端口將無法使用。在確保網(wǎng)絡(luò)權(quán)限的前提下,若需訪問UI界面,請?jiān)贛aster節(jié)點(diǎn)組的config.properties文件中增加以下配置,然后使用原有方法進(jìn)入U(xiǎn)I界面。

web-ui.authentication.type=fixed
web-ui.user=trino

從Trino的UI中,可以獲取到Trino最近執(zhí)行的查詢信息,包括SQL語句、執(zhí)行計(jì)劃等。Trino只會(huì)保存最近的不超過200條的查詢,執(zhí)行結(jié)果正常的查詢很快就會(huì)被新的查詢覆蓋;異常的查詢信息會(huì)保留的更久一些。可調(diào)整query.max-history配置(默認(rèn)為100)以增加保存的SQL數(shù)量。

創(chuàng)建集群時(shí)沒有選擇Trino,想要添加Trino,需要注意什么?

  • 對于DataLake集群,在集群剩余資源可以滿足Trino使用時(shí),直接添加即可。

  • 對于Hadoop集群,需要確認(rèn)集群是否有某些服務(wù)做過手動(dòng)升級處理。如果存在這種情況,Trino創(chuàng)建完成后可能報(bào)錯(cuò),此時(shí)可按照以下方式處理:

    • JindoSDK單獨(dú)進(jìn)行過升級時(shí),尤其是進(jìn)行過跨大版本的更新時(shí),需重新執(zhí)行Presto或Trino相關(guān)的升級腳本,手動(dòng)將升級后的JindoSDK復(fù)制到Trino安裝路徑的對應(yīng)連接器下。

    • 對于EMR-3.39.1版本,請查看服務(wù)日志,其內(nèi)容通常為找不到Delta相關(guān)的某個(gè)類。此時(shí)需要手動(dòng)在各個(gè)節(jié)點(diǎn)下,將/opt/apps/ecm/service/deltalake/0.6.1-3.3/package/deltalake-0.6.1-3.3/presto-delta/delta-standalone-assembly-0.2.0.jar復(fù)制到/usr/lib/presto-current/plugin/delta路徑下。

為什么我修改的配置沒有生效?

Trino的配置文件位于/etc/emr/trino-conf中,請確認(rèn)機(jī)器上的配置文件是否正確反映了控制臺上的變化,是否有之前新增或修改的內(nèi)容:

  • 配置文件中沒有之前新增或修改的內(nèi)容:需要確認(rèn)修改的配置是否進(jìn)行了保存、是否執(zhí)行了部署、配置修改范圍是否符合需求。

    重要

    如果某配置項(xiàng)單獨(dú)修改過節(jié)點(diǎn)組或單個(gè)節(jié)點(diǎn)的配置,對應(yīng)的集群默認(rèn)配置將不再起作用。

  • 配置文件中有之前新增或修改的內(nèi)容:如果節(jié)點(diǎn)上的配置文件已經(jīng)變成修改后的,請確認(rèn)Trino的所有節(jié)點(diǎn)是否執(zhí)行了重啟,Trino必須在執(zhí)行重啟之后才會(huì)加載配置。

為什么我在查詢卡住了?為什么我的Worker節(jié)點(diǎn)掛掉了?

如果發(fā)現(xiàn)報(bào)錯(cuò)信息為:Could not communicate with the remote task. The node may have crashed or be under too much load. This is probably a transient issue, so please retry your query in a few minutes. No handle resolver for connector: hive ... Unrecognized token 'io': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false'),表示W(wǎng)orker節(jié)點(diǎn)負(fù)載太高已無法提供服務(wù)或Worker節(jié)點(diǎn)出現(xiàn)了自動(dòng)重啟。可能是某個(gè)Worker上的進(jìn)程被系統(tǒng)終止,需要根據(jù)實(shí)際情況調(diào)整配置,尤其是內(nèi)存相關(guān)配置,或限制并發(fā)請求數(shù)。

如何查看Trino日志?

Trino的日志文件默認(rèn)保存在/mnt/disk1/log/trino/var/log/路徑下。其中,輸出及異常堆棧信息均在server.log文件中。

如果僅想查看某個(gè)查詢的報(bào)錯(cuò)詳情。可以在進(jìn)入client時(shí)添加--debug命令,此時(shí)即可打印異常堆棧。

Trino的Coordinator和Worker之間通過HTTP協(xié)議通信,當(dāng)Coordinator節(jié)點(diǎn)出現(xiàn)HTTP返回異常時(shí),說明報(bào)錯(cuò)可能出現(xiàn)在某臺Worker節(jié)點(diǎn)上。此時(shí),如果沒有其他明顯的異常信息,您需要逐一排查各Worker節(jié)點(diǎn)。

為什么查詢不到數(shù)據(jù)或查詢失敗?

請按照以下方式排查:

  1. 使用Hive、Spark等其他引擎訪問或查詢數(shù)據(jù)。如果不能訪問,需要確認(rèn)數(shù)據(jù)源是否連通、數(shù)據(jù)是否完好。

  2. 如果僅Trino無法訪問或無法執(zhí)行查詢,需要檢查配置的元數(shù)據(jù)信息是否正確。

  3. 如果元數(shù)據(jù)正常,但查詢一個(gè)有數(shù)據(jù)的表的結(jié)果為空,需要先檢查您是否有數(shù)據(jù)訪問權(quán)限。

    • 如果數(shù)據(jù)所在的HDFS開啟了proxyuser,Trino也需要開啟hive.hdfs.impersonation.enabled配置。

    • 如果開啟了Ranger,請確認(rèn)Ranger權(quán)限配置是否正確。

    • 如果集群進(jìn)行過擴(kuò)容等操作,需要檢查新增的節(jié)點(diǎn)組或節(jié)點(diǎn)是否具有訪問相應(yīng)文件的權(quán)限或能力。

為什么查詢Hudi或Delta表時(shí)列的順序錯(cuò)了?

需要檢查Trino的hive.properties中的hive.parquet.use-columns-names配置項(xiàng)是否已置為true。

為什么新增一個(gè)配置后,重啟Trino失敗?

如果Server.log中包含了Error: Configuration property 'xxxxx' was not used,則說明您新增配置的位置不正確,或缺乏必要的前置配置。Trino對配置項(xiàng)的校驗(yàn)非常嚴(yán)格,如果新增的配置不存在、配置寫錯(cuò),或配錯(cuò)文件,都會(huì)導(dǎo)致配置無法識別,Trino無法啟動(dòng),所以請您仔細(xì)檢查新增的配置是否正確,或進(jìn)行回滾操作。

為什么使用Hive連接器查詢Iceberg、Hudi或Delta Lake表時(shí)會(huì)報(bào)錯(cuò)Cannot query xxx table

針對Iceberg、Hudi和Delta Lake,Trino分別提供了單獨(dú)的連接器。建議您使用各自的獨(dú)立連接器來執(zhí)行查詢。如果您的作業(yè)必須使用Hive連接器,請使用提供的Table Redirection功能將查詢轉(zhuǎn)發(fā)到相應(yīng)的獨(dú)立連接器上。

例如,通過設(shè)置以下參數(shù),您可以在Trino中配置Hive連接器,使其能夠正確地使用相應(yīng)的連接器來查詢Iceberg、Delta Lake和Hudi表。

hive.iceberg-catalog-name=iceberg
hive.delta-lake-catalog-name=delta-lake
hive.hudi-catalog-name=hudi