本文匯總Lindorm的支援人員方式、以及串連類常見問題與解決方案。
支援人員
關於Lindorm產品和服務的任何問題,您可以使用DingTalk搜尋DingTalk群號 35977898 加入DingTalk群進行反饋。
常見問題
使用 Lindorm 過程中如遇串連相關問題,可參考以下問答進行排查與處理。
Q:在 ECS 上通過專用網路訪問 Lindorm 失敗,可能有哪些原因?
A:在 ECS 執行個體上通過專用網路訪問 Lindorm 執行個體需要確保 ECS 與 Lindorm 之間可以相互串連。若二者無法互訪,常見原因及處理如下:
未將 ECS 執行個體的主私網 IP 位址添加到 Lindorm 白名單。請將 ECS 的主私網 IP 添加至 Lindorm 白名單,具體操作請參見設定白名單。
ECS 安全性群組規則阻塞了對 Lindorm 內網地址和連接埠的訪問。請添加安全性群組規則使其允許訪問,具體操作請參見添加安全性群組規則。
ECS 與 Lindorm 的網路類型不同。網路類型不同時可參考:
傳統網路下無法訪問 VPC 環境。
同一 VPC 網路下跨交換器,請添加安全性群組規則和網路 ACL 規則,具體操作請參見添加安全性群組規則和添加網路 ACL 規則。
不同 VPC 網路下預設無法訪問,請配置Express Connect。更多資訊,請參見如何選擇私網類產品?。
非阿里雲環境訪問(例如公司內網),請開通公網訪問或通過專線接入。
Q:用戶端報錯 “Retry exhausted when update config from seedserver” 如何處理?
A:可通過以下步驟進行排查:
若通過 ECS 訪問 Lindorm 執行個體,請確保 ECS 與 Lindorm 之間網路可以相互串連,可參考上文網路連通性排查方法。
可能是 Lindorm 執行個體的串連地址或連接埠使用錯誤,例如 HBase 相容用戶端的串連地址連接埠號碼為 30020。
Q:用戶端報錯 “Failed to connect to jdbc:lindorm:table:url=****” 如何處理?
A:可通過以下步驟進行排查:
若通過 ECS 訪問 Lindorm 執行個體,請確保 ECS 與 Lindorm 之間網路可以相互串連,可參考上文網路連通性排查方法。
可能是 Lindorm 執行個體的串連地址或連接埠使用錯誤,例如 Lindorm 寬表 SQL 的串連地址連接埠號碼為 30060,擷取方法請參見擷取串連資訊。
Q:報錯 “DoNotRetryIOException: Detect inefficient query: SELECT*FROM xxxx …” 是什麼原因?
A:執行 SELECT 語句被 Lindorm 寬表引擎識別為低效查詢,伺服器拒絕執行。解決方案請參見SELECT。
Q:如何使用 ping 命令檢測 ECS 與 Lindorm 之間的串連?
A:建立 Lindorm 執行個體後,或使用中執行個體突然無法串連時,可在 ECS 命令列使用 ping 命令檢測連通性。操作步驟如下:
登入 ECS,在命令列執行:
ping <host>樣本:
ping ld-bp1mq0tdzbx1m****-proxy-lindorm-pub.lindorm.aliyuncs.com說明host 為串連地址(不添加連接埠號碼)。
Windows 和 Linux 均可使用該命令;Windows 需持續檢測可使用
ping <host> -t。
查看測試結果:
Windows 系統將會在 4 次 ping 後顯示結果。
Linux 會持續發送 ping 請求,按 Ctrl+C 停止並查看統計結果。
結果分析:若所有請求均成功返回,則串連正常;若未收到正常回複,請按上文網路連通性條目檢查白名單、安全性群組等配置。
Q:如何使用 telnet 命令檢測 Lindorm 連接埠連通性?
A:若 Lindorm 出現串連問題且 ping 檢測成功,可進一步使用 telnet 檢測服務連接埠是否可用。
前提條件:ECS 已安裝 Telnet(Linux)或已啟用 Telnet 用戶端(Windows)。
登入 ECS,在命令列執行:
telnet <host> <port>樣本:
telnet ld-bp1mq0tdzbx1m****-proxy-lindorm-pub.lindorm.aliyuncs.com 33060說明host 為串連地址,port 為連接埠號碼。
Windows 和 Linux 均可使用該命令。
查看測試結果。
結果分析:若串連存在問題但可在 ECS 上使用 telnet 連上 Lindorm,則 ECS 與 Lindorm 之間網路無異常,請排查用戶端、業務代碼或其它導致服務阻塞的因素。
Q:使用 Spark on MaxCompute 訪問 Lindorm 時出現 Connection Timeout 怎麼辦?
A:使用 Spark on MaxCompute 訪問 Lindorm 時,無論通過協議相容還是 Lindorm 用戶端,均可能報連線逾時(Connection Timeout)。
原因說明:Spark on MaxCompute 的網路架構中,多個 Pod 經彈性網卡(ENI)與其他 VPC 上的資料服務通訊,ENI 端按演算法分配 Port;訪問對端 IP 不同時 Port 可能重複。Lindorm 用戶端或協議相容串連採用 SLB + 直連通訊,SLB 將源地址轉換為 ENI 地址時,若負載伺服器未儲存 NAT 資訊,可能出現丟包,導致連線逾時或資料串流。
解決方案:建議使用開源 Spark 內建的 HBase 用戶端訪問 Lindorm 執行個體。