# 已知的問題和限制
原文鏈接 : [http://kudu.apache.org/docs/known_issues.html](http://kudu.apache.org/docs/known_issues.html)
譯文鏈接 : [http://cwiki.apachecn.org/pages/viewpage.action?pageId=10813650](http://cwiki.apachecn.org/pages/viewpage.action?pageId=10813650)
貢獻者 : [小瑤](/display/~chenyao) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina)
## Schema ( 架構 )
### Primary keys ( 主鍵 )
* 創建表后,主鍵可能不會更改。您必須刪除并重新創建表以選擇新的主鍵。
* 構成主鍵的列必須首先列在模式中。
* 一行的主鍵可能不會使用 **UPDATE** 功能進行修改。要修改行的主鍵,必須刪除該行并使用修改的密鑰重新插入。這樣的修改是非原子的。
* 不能使用 **DOUBLE** , **FLOAT** 或 **BOOL** 類型的列作為主鍵定義的一部分。另外,作為主鍵定義的一部分的所有列都必須為 NULL 。
* 不支持自動生成的主鍵。
* 組合復合主鍵的單元在 **Kudu** 完成的內部復合密鑰編碼后,總共限制在16KB。
### Columns ( 列 )
* **DECIMAL**,**CHAR**,**VARCHAR**,**DATE** 和 **ARRAY** 等復雜類型不受支持。
* 不能通過更改表來更改現有列的類型和可空性。
* 表格最多可以有 **300** 列。
### Tables ( 表 )
* 表必須有奇數個副本,最多 **7** 個。
* 無法更改復制因子(在表創建時設置)。
### Cells (individual values) ( 單元格 ( 個體值 ))
* 在編碼或壓縮之前,單元格不能大于 **64KB** 。
### Other usage limitations ?( 其他使用限制 )
* **Kudu** 主要用于分析用例。如果單行包含多個千字節的數據,則可能會遇到問題。
* 不支持輔助索引。
* 不支持多行事務。
* 不支持關系功能,如外鍵。
* 諸如列和表名稱的標識符被限制為有效的 **UTF-8** 字符串。另外,執行最大長度為 **256** 個字符。
* 刪除列不會立即回收空間。**Compaction ?**必須先運行。
* 沒有辦法手動運行壓縮,但刪除表將立即回收空間。
## Partitioning Limitations ( 分區限制 )
* 表必須使用簡單或復合主鍵手動預分割成 **tablets?**。自動拆分還不可能。創建表后,可能會添加或刪除范圍分區。有關詳細信息,請參閱 [模式設計](/pages/viewpage.action?pageId=10813632)。
* 現有表中的數據當前無法自動重新分區。作為解決方法,使用新的分區創建一個新表,并插入舊表的內容。
* 丟失大多數?**replicas** 的 **tablets?**(例如 **3** 中剩下的 **1** 個)需要手動干預才能修復。
## Cluster management ( 集群管理?)
* **Rack awareness** ( 機架意識 ) 不受支持。
* 不支持 **Multi-datacenter** ( 多數據中心?)。
* 不支持 **Rolling restart** ( 滾動重新啟動?)。
## Server management ( 服務器管理?)
* 生產部署應為 **tablet servers** 配置至少 **4GB** 的內存,理想情況下應為 **10GB** 以上。
* 寫入日志(**WAL**)只能存儲在一個磁盤上。
* 不能容忍磁盤故障,一旦檢測到 **tablet server** 就會崩潰。
* 無法恢復數據的磁盤故障需要格式化該**tablet server**的所有 **Kudu** 數據,才能再次啟動。
* 數據目錄無法 添加/刪除 ;所有這些都必須重新格式化以更改目錄集。
* **tablet servers** 無法正常 **decommissioned** 。
* **tablet servers** 無法更改地址/端口。
* **Kudu** 對于最新的 **NTP** 具有嚴格的要求。 **Kudu**的**master**?和**tablet servers**在不同步時會崩潰。
* **Kudu** 版本只能使用 **NTP** 進行測試。其他時間同步提供商,如 **Chrony** 可能或可能不工作。
## Scale ( 規模?)
* 推薦的最大數量的 **tablet servers** 是**100**。
* 建議的最大 **masters** 數是 **3** 。
* 推薦的最大數量的存儲數據,復制后和壓縮后每個 **tablet server** ?是 **4TB**。
* 每個 **tablet server?**的最大平均 **tablets** 推薦數量為?**1000?**次,**post-replication** 。
* 每個 **tablet server** ?的每個表的最大 **tablet** 數是 **60**,復制后,創建表。
## Replication and Backup Limitations ( 復制和備份限制?)
* **Kudu** 當前不包括用于備份和還原的任何內置功能。鼓勵用戶使用 **Spark** 或 **Impala** 等工具,根據需要導出或導入表格。
## Security Limitations ( 安全限制 )
* 授權僅在全系統,粗粒度級別提供。表級,列級和行級授權功能不可用。
* 據報道,**Kudu** 已經報告在使用本地塊設備加密(例如 **dmcrypt?**)的系統上正確運行 **Kudu** 。
* **Kudu** 服務器 **Kerberos** **principals?**必須遵循模式 **kudu/<HOST>@DEFAULT.REALM** 。不支持配置備用 **Kerberos principal ?**。
* **Kudu** 與 **Apache** **Flume** 的集成不支持寫入需要 **Kerberos** 認證的 **Kudu** 集群。
* 首次聯系群集時,**Kudu** 客戶端實例將檢索身份驗證令牌。這些令牌在一周后到期。使用單個 **Kudu** 客戶端實例超過一周僅由 **C ++** 客戶端支持,但不受 **Java** 客戶端的支持。
## Other Known Issues ( 其他已知問題?)
以下是 **Kudu** 當前版本的已知錯誤和問題。他們將在以后的版本中解決。請注意,此列表并不詳盡,僅用于溝通最重要的已知問題。
* 如果 **Kudu master** 配置了 **-log_force_fsync_all** 選項,則 **tablet server** 和客戶端將經歷頻繁的超時,并且集群可能無法使用。
* 如果 **tablet servers** 的 **tablet** 數量很多,可能需要幾分鐘才能啟動。建議將每臺服務器的 **tablet** 數量限制在 **100** 個以下。在分割表格時考慮這個限制。如果您注意到啟動時間較慢,則可以監控 **Web UI** 中每個服務器的 **tablets** 數量。
* 在 **hostname** 中包含大寫字母的 **hosts** 上,**Kerberos** 身份驗證功能不正確。
* 如果在 **krb5.conf** 中配置了 **rdns = false** ,則 **Kerberos** 身份驗證功能不正常。