偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

騰訊面試:介紹一下 Doris 問(wèn)題排查思路,有沒(méi)有總結(jié)過(guò)相關(guān)文檔?

數(shù)據(jù)庫(kù) 大數(shù)據(jù)
本方案旨在詳細(xì)介紹 Doris 常見(jiàn)問(wèn)題的排查方法和解決方案,幫助用戶(hù)快速定位和解決問(wèn)題,確保 Doris 系統(tǒng)的穩(wěn)定運(yùn)行。

Apache Doris 作為一款高性能的 MPP 分析型數(shù)據(jù)庫(kù),在數(shù)據(jù)處理和分析領(lǐng)域得到了廣泛應(yīng)用。然而,在使用過(guò)程中難免會(huì)遇到各種問(wèn)題,如查詢(xún)性能問(wèn)題、數(shù)據(jù)導(dǎo)入問(wèn)題、數(shù)據(jù)副本異常等。

本方案旨在詳細(xì)介紹 Doris 常見(jiàn)問(wèn)題的排查方法和解決方案,幫助用戶(hù)快速定位和解決問(wèn)題,確保 Doris 系統(tǒng)的穩(wěn)定運(yùn)行。

一、常見(jiàn)問(wèn)題分類(lèi)及排查方法

1. 查詢(xún)性能問(wèn)題

(1) 表現(xiàn)及原因

在 Doris 執(zhí)行查詢(xún)時(shí),可能會(huì)遇到查詢(xún)性能未達(dá)預(yù)期的情況,如查詢(xún)速度慢、資源不足導(dǎo)致查詢(xún)失敗等??赡艿脑虬?SQL 任務(wù)過(guò)大、數(shù)據(jù)分布不均、系統(tǒng)資源配置不足、索引未正確使用等。

(2) 排查步驟

  • 獲取 Profile:通過(guò) Profile 可以查看查詢(xún)的執(zhí)行情況,找出可以?xún)?yōu)化的地方。在不同環(huán)境下獲取 Profile 的方法如下:
  • Doris 集群能夠正常訪問(wèn):使用請(qǐng)求方式 HTTP://FE_IP:HTTP_PORT GET /API/Profile。開(kāi)啟 Profile 上報(bào)參數(shù) enable_profile,此參數(shù)為 session 變量,不建議全局開(kāi)啟。
-- 開(kāi)啟變量
mysql >set enable_profile =true;
-- 確認(rèn)變量是否正常開(kāi)啟
mysql >show variables like'%profile%';
  • 分析 SQL 任務(wù):檢查 SQL 任務(wù)是否可以進(jìn)行拆分,對(duì)于包含大表計(jì)算的任務(wù),分析是否有分區(qū)設(shè)計(jì),以更好地利用分區(qū)裁剪能力。
  • 檢查數(shù)據(jù)分布:使用 EXPLAIN 語(yǔ)句查看查詢(xún)執(zhí)行計(jì)劃,確認(rèn)索引是否被使用。如果數(shù)據(jù)在集群中分布不均,某些節(jié)點(diǎn)可能承擔(dān)過(guò)多的計(jì)算任務(wù),導(dǎo)致整體性能下降??梢灾匦略O(shè)計(jì)分片鍵或調(diào)整數(shù)據(jù)分區(qū)策略。
EXPLAINSELECT*FROM table_name WHERE indexed_column ='value';
  • 檢查系統(tǒng)資源配置:查看系統(tǒng)的 CPU、內(nèi)存、磁盤(pán) I/O 和網(wǎng)絡(luò)帶寬等資源是否緊張。可以使用系統(tǒng)監(jiān)控工具(如 top、iostat 等)來(lái)檢查這些資源的使用情況。
  • 調(diào)整查詢(xún)參數(shù):適當(dāng)調(diào)整 Doris 的查詢(xún)參數(shù),例如調(diào)整分片數(shù)或優(yōu)化 Join 操作。
SET query_mem_limit ='8G';
ALTERTABLE table_name SET("num_buckets"=16);

2. 數(shù)據(jù)導(dǎo)入問(wèn)題

(1) 表現(xiàn)及原因

數(shù)據(jù)導(dǎo)入問(wèn)題包括導(dǎo)入失敗、導(dǎo)入速度慢等??赡艿脑蛴蟹謪^(qū)字段問(wèn)題、數(shù)據(jù)類(lèi)型不匹配、網(wǎng)絡(luò)問(wèn)題、資源瓶頸、配置錯(cuò)誤等。

(2) 排查步驟

① Stream Load 導(dǎo)入慢

  • 監(jiān)控資源使用情況:確保 BE 的 CPU、內(nèi)存、IO 等資源充足。
  • 查看日志:根據(jù) Load ID 和 Txn ID 在 BE.INFO 日志中搜索慢請(qǐng)求,重點(diǎn)查看進(jìn)行輸送的 Coordinator BE。
  • 檢查網(wǎng)絡(luò)連通情況:檢查客戶(hù)端到 BE 的網(wǎng)絡(luò)連通情況,如實(shí)時(shí) ping 延遲和網(wǎng)絡(luò)帶寬。
  • 檢查并發(fā)數(shù):確認(rèn)導(dǎo)入對(duì)應(yīng)的并發(fā)數(shù)是否過(guò)高,如果并發(fā)數(shù)超過(guò) HTTP Server 線程數(shù)(默認(rèn)為 48),可能導(dǎo)致接收客戶(hù)端數(shù)據(jù)慢。
  • 檢查是否觸發(fā)內(nèi)存下刷:通過(guò)搜索 BE.INFO 中的 reducing 日志確認(rèn)。
  • 檢查是否導(dǎo)入 Mow 表:因 Mow 表需要計(jì)算 delete bitmap,并分析計(jì)算時(shí)間。

② Routine Load 消費(fèi)慢

  • 檢查配置:確認(rèn) Routine Load 配置正確。
  • 查看任務(wù)狀態(tài):使用 SHOW ROUTINE LOAD 查看 abortedTaskNum,如果很多表明 Task 一直失敗,需要在 FE 日志中根據(jù) Job ID 查詳細(xì)失敗原因。
  • 檢查資源瓶頸:如果配置沒(méi)有問(wèn)題,且 Task 沒(méi)有失敗,檢查是否存在資源瓶頸。
  • 分析 Kafka 是否慢:可在 BE 日志中搜索 blocking get time(us),如有顯著高值,表明 Kafka 慢了。

③ Insert Into Select 導(dǎo)入慢

  • 確認(rèn)是否為查詢(xún)慢導(dǎo)致:利用 SET dry_run_query = true 先運(yùn)行查詢(xún)。
  • 啟用新最優(yōu)化器:如果是 Doris 2.0 到 2.1.3 之間的版本,設(shè)置 enable_nereids_dml = true,2.1.3 之后默認(rèn)開(kāi)啟。
  • 測(cè)試非前移對(duì)導(dǎo)入的影響:2.1 以上版本設(shè)置 enable_memtable_on_sink_node = false 進(jìn)行測(cè)試。
  • 測(cè)試關(guān) shuffle 對(duì)導(dǎo)入的影響:2.1 以上版本設(shè)置 enable_strict_consistency_dml = false 進(jìn)行測(cè)試。
  • 調(diào)整并發(fā)數(shù):Pipeline 模式調(diào)大 parallel_pipeline_task_num 增大并發(fā);非 Pipeline 模式調(diào)大 parallel_fragment_exec_instance_num 增大并發(fā)。

3. 數(shù)據(jù)副本問(wèn)題

(1) 表現(xiàn)及原因

查詢(xún)時(shí)可能會(huì)出現(xiàn)報(bào)錯(cuò),如 Failed to initialize storage reader, tablet = {tablet_id}. xxx. xxx,原因可能是遷移副本過(guò)程丟 version、數(shù)據(jù)導(dǎo)入過(guò)程中 be 宕機(jī)等。

(2) 排查步驟

① 問(wèn)題定位

  • 獲取異常 tablet 的詳細(xì)信息:使用 show tablet {tablet_id} 拿到 detail cmd。
show tablet 606202;
  • 執(zhí)行 detail cmd:找出該 BE 所在的副本(compact status url 中包含有該 BE 的 ip)。
SHOWPROC'/dbs/10113/591325/partitions/606195/591326/606202';
  • 執(zhí)行 curl 請(qǐng)求:查看該副本的 rowset 和 missing_rowset,重點(diǎn)看 rowset 的最大版本和 missing_rowsets。
curl http://10.xxx:8040/api/compaction/show?tablet_id =606202

② 問(wèn)題處理

確認(rèn)是否自動(dòng)修復(fù):由于 Doris 內(nèi)部會(huì)自動(dòng)做數(shù)據(jù)均衡和修復(fù),先確認(rèn)異常數(shù)據(jù)副本能否自動(dòng)修復(fù)。如果是多副本,查看是否存在健康副本,將查詢(xún)報(bào)錯(cuò)的副本 set bad。

ADMIN SET REPLICA STATUS PROPERTIES ("tablet_id"="7552021","backend_id"="10003","status"="bad");
  • 重新導(dǎo)數(shù)手動(dòng)修復(fù):如果是多個(gè)副本都損壞,并且是分區(qū)表的情況下,可以刪除這個(gè)分區(qū),然后手動(dòng)重建這個(gè)分區(qū),重新導(dǎo)入數(shù)據(jù);如果是非分區(qū)表的情況下,只能刪除這個(gè)表重新導(dǎo)入數(shù)據(jù)。
  • 填充空副本進(jìn)行修復(fù):使用一個(gè)空的 rowset 填充損壞的副本,缺多少個(gè) rowset,就調(diào)用多少次修補(bǔ)的方法。
curl -XPOST"http://10.151.2.29:8040/api/pad_rowset?tablet_id=606202&start_version=35&end_version=35"

4. 數(shù)據(jù)均衡問(wèn)題

(1) 表現(xiàn)及原因

可能出現(xiàn) BE 節(jié)點(diǎn)之間的數(shù)據(jù)不均、單個(gè) BE 節(jié)點(diǎn)上的多個(gè)磁盤(pán)之間的數(shù)據(jù)不均、BE 節(jié)點(diǎn)的上線和下線進(jìn)度卡死等情況。原因可能是參數(shù)配置不當(dāng)、長(zhǎng)事務(wù)阻塞、副本遷移超時(shí)、版本 BUG 等。

(2) 排查步驟

① 確認(rèn) FE 參數(shù):使用 admin show frontend config like '%xxxx%' 檢查 FE 的以下參數(shù)是否正確:

  • disable_balance = false
  • disable_disk_balance = false
  • disable_colocate_balance = false
  • disable_tablet_scheduler = false

當(dāng) Doris 版本為 2.0.4 之后,對(duì)于單副本的數(shù)據(jù),需要將 enable_disk_balance_for_single_replica 改成 true。

admin set frontend config("enable_disk_balance_for_single_replica"="true");

② 均衡狀態(tài)檢查

  • 查看當(dāng)前正在執(zhí)行的調(diào)度:如果 running 任務(wù)正常,但是磁盤(pán)空間不下降,可能是均衡調(diào)度任務(wù)正常,需要清理下 trash,執(zhí)行 admin clean trash;也可能是均衡調(diào)度異常,查看均衡調(diào)度的歷史信息,查看是否有報(bào)錯(cuò)。
  • 查看均衡的歷史記錄信息:根據(jù) Finished 進(jìn)行排序,看是否有大量的 CANCELLED 狀態(tài)。如果有,可以看最左邊的 ErrMsg 日志,或者通過(guò)搜索 Master FE 的日志 grep "tablet schedule|TableSch" fe.log|grep tablet_id。
  • 均衡權(quán)重檢查:可以通過(guò) FE 的 8030 端口對(duì)應(yīng)的 web 界面(點(diǎn)擊 System=>cluster_balance)或 SQL 語(yǔ)句 show proc '/cluster_balance/cluster_load_stat/location_default/HDD' 查看。當(dāng) Class 均為 MID 時(shí),代表當(dāng)前集群的 BE 之間和單個(gè) BE 的磁盤(pán)之間數(shù)據(jù)已均衡。
  • 均衡任務(wù)執(zhí)行情況檢查

③ 均衡參數(shù)調(diào)優(yōu)

  • 數(shù)據(jù)不夠均衡:適當(dāng)調(diào)小 balance_load_score_threshold 參數(shù),觸發(fā)均衡調(diào)度執(zhí)行;調(diào)整 backend_load_capacity_coeficient 參數(shù),決定讓磁盤(pán)使用率更均衡,還是讓 tablet 數(shù)目更加均衡。
admin set frontend config("balance_load_score_threshold"="xx");
admin set frontend config("backend_load_capacity_coeficient"="xx");
  • 均衡速度慢:檢查 BE 的 IO 是否很高,通過(guò) `iostat -x 1` 查看讀寫(xiě)的 IO 延時(shí);調(diào)整均衡的線程數(shù),如 `be.conf` 中的 `storage_medium_migrate_count` 和 `clone_worker_count`。

5. Compaction 問(wèn)題

(1) 表現(xiàn)及原因

可能出現(xiàn) compaction score 高、Compaction 失敗等問(wèn)題,原因包括 compaction 持續(xù)失敗、用戶(hù)使用不當(dāng)(如 bucket 數(shù)量設(shè)置不合適)、compaction 策略問(wèn)題、導(dǎo)入速度超過(guò) compaction 速度等。

(2) 排查步驟

① compaction score 高

  • 判斷是否為 compaction 持續(xù)失敗導(dǎo)致:使用 grep ${tablet_id} be.INFO | grep compaction 查看是否有持續(xù)失敗的日志,使用 curl ip:port/api/compaction/show?tablet_id=${tablet_id} 查看 compaction status。
  • 檢查用戶(hù)使用情況:確認(rèn)建表時(shí) bucket 數(shù)量設(shè)置是否合適。
  • 檢查 compaction 策略:通過(guò) curl ip:port/api/compaction/show?tablet_id=${tablet_id} 查看 tablet compaction 上一次執(zhí)行的時(shí)間,使用 grep ${tablet_id} be.INFO | grep compaction 查看該 tablet compaction 執(zhí)行的歷史。如果是策略問(wèn)題,可手動(dòng)觸發(fā) compaction。
curl -XPOSThttp://be_host:webserver_port/api/compaction/run?tablet_id = xxxx&compact_type = cumulative
  • 判斷是否為導(dǎo)入速度超過(guò) compaction 速度:查看 compaction 一段時(shí)間內(nèi)的平均并發(fā)數(shù),計(jì)算統(tǒng)計(jì)的 clock time,比較實(shí)際并發(fā)和設(shè)置的并發(fā)限制。如果 CPU 負(fù)載不高,可調(diào)整 compaction 并發(fā)配置;如果 CPU 負(fù)載比較高,可考慮攢批導(dǎo)入或擴(kuò)容。

② Compaction 失?。和ㄟ^(guò) grep compaction be.INFO | grep {tablet_id} 查看 compaction 失敗的具體原因。

二、日志分析

Doris 提供了豐富的日志信息,幫助用戶(hù)定位和解決問(wèn)題。主要日志文件包括:

  • FE 日志(fe.log):記錄前端節(jié)點(diǎn)的運(yùn)行信息和錯(cuò)誤,可用于排查 FE 相關(guān)的問(wèn)題,如查詢(xún)計(jì)劃生成、元數(shù)據(jù)管理等。
  • BE 日志(be.INFO):記錄后端節(jié)點(diǎn)的運(yùn)行信息和錯(cuò)誤,可用于排查 BE 相關(guān)的問(wèn)題,如數(shù)據(jù)存儲(chǔ)、計(jì)算、導(dǎo)入等。
  • Audit 日志:記錄用戶(hù)的操作日志,可用于審計(jì)和追蹤用戶(hù)的操作。

通過(guò)分析日志文件,用戶(hù)可以了解集群的運(yùn)行狀態(tài),發(fā)現(xiàn)異常情況,并采取相應(yīng)的措施解決問(wèn)題。例如,在排查查詢(xún)性能問(wèn)題時(shí),可以查看 FE 日志中是否有查詢(xún)超時(shí)、資源不足等信息;在排查數(shù)據(jù)導(dǎo)入問(wèn)題時(shí),可以查看 BE 日志中是否有導(dǎo)入失敗、寫(xiě)入錯(cuò)誤等信息。

三、監(jiān)控與預(yù)警

1. 監(jiān)控指標(biāo)

  • 系統(tǒng)指標(biāo):如集群負(fù)載、CPU 使用率、內(nèi)存使用率、磁盤(pán) IO 等。
  • 查詢(xún)指標(biāo):如查詢(xún)數(shù)量、查詢(xún)延遲、查詢(xún)錯(cuò)誤等。
  • 存儲(chǔ)指標(biāo):如數(shù)據(jù)大小、數(shù)據(jù)壓縮率、數(shù)據(jù)分布等。

2. 監(jiān)控工具

Doris 監(jiān)控系統(tǒng):Doris 數(shù)據(jù)庫(kù)內(nèi)置了完善的監(jiān)控系統(tǒng),提供豐富的監(jiān)控指標(biāo)和圖表,幫助用戶(hù)實(shí)時(shí)了解集群的運(yùn)行狀態(tài)和性能表現(xiàn)。

第三方監(jiān)控工具:如 Prometheus、Grafana 等,可提供更豐富的監(jiān)控指標(biāo)和可視化功能,幫助用戶(hù)深入分析集群性能。

3. 預(yù)警設(shè)置

根據(jù)監(jiān)控指標(biāo)設(shè)置合理的預(yù)警閾值,當(dāng)指標(biāo)超過(guò)閾值時(shí)及時(shí)發(fā)出預(yù)警,以便用戶(hù)及時(shí)處理問(wèn)題。例如,設(shè)置 CPU 使用率超過(guò) 80% 時(shí)發(fā)出預(yù)警,提醒用戶(hù)檢查系統(tǒng)資源使用情況。

Doris 問(wèn)題排查需要綜合考慮多個(gè)方面,包括查詢(xún)性能、數(shù)據(jù)導(dǎo)入、數(shù)據(jù)副本、數(shù)據(jù)均衡、連接等問(wèn)題。

責(zé)任編輯:趙寧寧 來(lái)源: 大數(shù)據(jù)技能圈
相關(guān)推薦

2018-01-17 17:02:08

運(yùn)維工程師面試經(jīng)歷試題

2011-07-20 17:31:36

關(guān)系型數(shù)據(jù)庫(kù)

2023-06-05 14:14:21

騰訊索引面試

2023-02-04 20:08:24

前端開(kāi)發(fā)

2021-10-14 07:28:03

Kubernetes通用排查

2010-06-13 17:57:23

局域網(wǎng)協(xié)議

2018-11-06 12:12:00

MySQL內(nèi)存排查

2011-07-20 16:13:03

SQL Profile數(shù)據(jù)庫(kù)

2022-06-29 11:01:05

MySQL事務(wù)隔離級(jí)別

2023-09-12 14:56:13

MyBatis緩存機(jī)制

2022-09-27 21:14:54

Spring事務(wù)傳播機(jī)制

2023-10-08 13:10:00

Redis數(shù)據(jù)庫(kù)

2019-12-13 10:50:10

TCP排查服務(wù)器

2025-05-30 20:08:03

2011-08-22 15:19:25

2011-07-26 18:22:42

MySQL Workb數(shù)據(jù)庫(kù)

2018-08-31 14:43:31

病毒手機(jī)自查

2018-07-04 16:36:43

騰訊云

2009-12-21 15:58:19

ADO.NET集合

2023-11-01 07:25:54

Kafka消息傳遞系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)