OpenMLDB 新手寶典 開發者上手必讀
OpenMLDB作為分散式系統,模式多樣、客戶端豐富,初次使用可能會遇到安裝部署或者執行使用方面的問題。
本文將從新手使用的角度,為大家講解如何進行診斷除錯,以及如何向OpenMLDB社群技術人員反饋疑問或提供清晰的使用資訊。
建立 OpenMLDB 與連線
首先,我們建議不熟悉分散式多程式管理的新手使用 docker 建立 OpenMLDB,方便快速上手。待熟悉 OpenMLDB 各元件後,再嘗試分散式部署。
docker 建立 OpenMLDB 可見快速上手文件(見文末),請注意文件中有兩個版本,單機版和叢集版。請記住自己建立的版本,不要混合使用,以致錯亂。
啟動成功的標準是可以使用 CLI 連線上 OpenMLDB 服務端(即使用
/work/openmldb/bin/openmldb
連線 OpenMLDB,單機或叢集均可以透過 CLI 連線),並且執行
show components;
可以看到 OpenMLD B服務端元件的執行情況。
如果 CLI 無法連線 OpenMLDB,請先確認程式是否執行正常,可以透過
ps f|grep bin/openmldb
確認 nameserver和tabletserver 程式,叢集版還需要透過
ps f | grep zoo.cfg
來確認 zk 服務,
ps f | grep TaskManagerServer
來確認 taskmanager 程式。
如果所有服務程式都執行中,但 CLI 連線服務端失敗,請確認 CLI 執行的引數。如果仍有問題,請聯絡我們並提供 CLI 的錯誤資訊。
Note
如果我們還需要 OpenMLDB 服務端的配置和日誌,可以使用診斷工具獲取,見下文。
執行 SQL
OpenMLDB 所有命令均為 SQL,如果 SQL 執行失敗或互動有問題(不知道命令是否執行成功),請先確認 SQL 書寫是否有誤,命令並未執行,還是命令進入了執行階段。
例如,下面提示 Syntax error 的是SQL書寫有誤,請參考 sql reference 糾正錯誤。
127.0.0.1:7527/db> create table t1(c1 int;Error: Syntax error: Expected ")" or "," but got ";" [at 1:23]create table t1(c1 int; ^
如果是命令進入執行階段,但執行失敗或互動失敗,需要明確以下幾點:
- OpenMLDB 是單機還是叢集?
- 執行模式是什麼?CLI 執行命令時可以使用
show variable
獲取,但注意單機版的執行模式沒有意義。
我們需要特別注意叢集版的一些使用邏輯。
叢集
離線
如果是叢集離線命令,預設非同步模式下,傳送命令會得到 job id 的返回。可使用
show job <id>
來查詢 job 執行情況。
離線 job 如果是 SELECT(並不 INTO 儲存結果),也不會將結果列印在客戶端。需要從日誌中獲得結果,日誌預設在
/work/openmldb/taskmanager/bin/logs/jog_x.log
。
如果發現 job failed 或者 finished,但不符合你的預期,請查詢日誌。日誌預設在
/work/openmldb/taskmanager/bin/logs/jog_x_error.log
(注意有 error 字尾),
日誌地址由 taskmanager.properties 的
job.log.path
配置,如果你改變了此配置項,需要到配置的目的地尋找日誌。
Note
- 如果 taskmanager 是 yarn 模式,而不是 local 模式,
job_x_error.log
中的資訊會較少,不會有 job 錯誤的詳細資訊。需要透過job_x_error.log
中記錄的 yarn app id,去 yarn 系統中查詢 job 的真正錯誤原因。
線上
叢集版線上模式下,我們通常只推薦使用
DEPLOY
建立 deployment 和執行 deployment 做實時特徵計算。在 CLI 或其他客戶端中,直接在線上中進行 SELECT查詢,稱為“線上預覽”。線上預覽有諸多限制,詳情請參考功能邊界-叢集版線上預覽模式,請不要執行不支援的 SQL。
提供復現指令碼
如果你透過自主診斷,無法解決問題,請向我們提供復現指令碼。一個完整的復現指令碼,如下所示:
create database db;use db;-- create youer table create table xx ();-- offline or onlineset @@execute_mode='';-- load data or online insert-- load data infile '' into table xx;-- insert into xx values (),();-- query / deploy ...
如果你的問題需要資料才能復現,請提供資料。如果是離線資料,離線無法支援 insert,請提供 csv/parquet 資料檔案。如果是線上資料,可以提供資料檔案,也可以直接在指令碼中進行 insert。
這樣的資料指令碼可以透過重定向符號,批次執行 sql 指令碼中的命令。
/work/openmldb/bin/openmldb --host 127.0.0.1 --port 6527 < reproduce.sql/work/openmldb/bin/openmldb --zk_cluster=127.0.0.1:2181 --zk_root_path=/openmldb --role=sql_client < reproduce.sql
請確保在你本地可以使用復現指令碼復現問題,再記錄 issue 或傳送給我們。
!Caution
請注意離線 job 預設為非同步。如果你需要離線匯入再查詢,請設定為同步模式,詳情見配置離線命令同步執行。否則匯入還未完成就進行查詢,是無意義的。
提供配置與日誌
如果你的問題無法透過復現指令碼復現,那麼,就需要你提供客戶端和服務端的配置與日誌,以便我們調查。
docker 或本地的叢集(服務端所有程式都在本地),可以使用診斷工具快速獲取配置、日誌等資訊。
使用 init.sh/start-all.sh 指令碼啟動的 OpenMLDB 服務端,可以使用以下命令進行診斷,分別對應叢集版和單機版。
openmldb_tool --env=onebox --dist_conf=cluster_dist.yml openmldb_tool --env=onebox --dist_conf=stadnalone_dist.yml
cluster_dist.yml
和
stadnalone_dist.yml
,可在 docker 容器
/work/diag
目錄中找到,或將github目錄中的yml檔案複製下來使用。
如果是分散式的叢集,需要配置 ssh 免密才能順利使用診斷工具,參考文件診斷工具。
如果你的環境無法做到,請手動獲取配置與日誌。
本期 · 相關資料
OpenMLDB 快速上手文件
網址:
瞭解更多
Github 網址:
微信交流群網址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026745/viewspace-2937338/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 開發者必讀的十大經典書籍
- 【官方重磅釋出】Google AdMob新手入門寶典Go
- Terraform 新手村指南,萌新必讀!ORM
- Mac 觸控板增強神器BetterTouchTool 上手指南,新手必備Mac
- 開發者進階寶典,HarmonyOS 職業認證全奉上
- 面試寶典面試
- Python數學建模-01.新手必讀Python
- Java 面試寶典Java面試
- PHP面試寶典PHP面試
- iOS 面試寶典iOS面試
- Kotlin 語言入門寶典 | Android 開發者 FAQ Vol.5KotlinAndroid
- OpenMLDB SQL 開發除錯神器 - OpenMLDB SQL EmulatorSQL除錯
- 讀Visual C++開發經驗技巧寶典第…C++
- Spring葵花寶典Spring
- C++面試寶典C++面試
- FAQ寶典之RancherServerServer
- Java面試葵花寶典Java面試
- C++程式設計師必讀的經典著作C++程式設計師
- [譯] 新手開發者須知
- Oracle面試寶典-鎖篇Oracle面試
- Node.js 葵花寶典Node.js
- Oracle 面試寶典-RAC篇Oracle面試
- Oracle 面試寶典-UNDO篇Oracle面試
- Oracle 面試寶典-DG篇Oracle面試
- 前端學習文件寶典前端
- DevOps 初學者寶典dev
- 如何快速上手Mac電腦?mac新手教程 Mac電腦新手必看Mac
- 微信小程式_新手必看 最快上手(下)微信小程式
- 開發者必讀:Oracle 12c新特性再總結Oracle
- Java開發者必讀的5本最佳Hibernate書籍Java
- OpenDevin出技術報告了,大模型Agent開發者必讀dev大模型
- 移動開發者的自學寶典:十大線上程式設計學習網站移動開發程式設計學習網站
- 新手入門必讀 (請進)--簡體字版 (2千字)
- 新手必備:FTP命令大全FTP
- Oracle面試寶典-等待事件篇Oracle面試事件
- Oracle面試寶典-引數篇Oracle面試
- Oracle面試寶典-事務篇Oracle面試
- 大資料面試寶典五大資料面試