已知的问题和限制

原文链接 : http://kudu.apache.org/docs/known_issues.html

译文链接 : http://cwiki.apachecn.org/pages/viewpage.action?pageId=10813650

贡献者 : 小瑶 ApacheCN Apache中文网

Schema ( 架构 )

Primary keys ( 主键 )

  • 创建表后,主键可能不会更改。您必须删除并重新创建表以选择新的主键。
  • 构成主键的列必须首先列在模式中。
  • 一行的主键可能不会使用 UPDATE 功能进行修改。要修改行的主键,必须删除该行并使用修改的密钥重新插入。这样的修改是非原子的。

  • 不能使用 DOUBLEFLOATBOOL 类型的列作为主键定义的一部分。另外,作为主键定义的一部分的所有列都必须为 NULL 。

  • 不支持自动生成的主键。
  • 组合复合主键的单元在 Kudu 完成的内部复合密钥编码后,总共限制在16KB。

Columns ( 列 )

  • DECIMALCHARVARCHARDATEARRAY 等复杂类型不受支持。
  • 不能通过更改表来更改现有列的类型和可空性。
  • 表格最多可以有 300 列。

Tables ( 表 )

  • 表必须有奇数个副本,最多 7 个。
  • 无法更改复制因子(在表创建时设置)。

Cells (individual values) ( 单元格 ( 个体值 ))

  • 在编码或压缩之前,单元格不能大于 64KB

Other usage limitations ( 其他使用限制 )

  • Kudu 主要用于分析用例。如果单行包含多个千字节的数据,则可能会遇到问题。

  • 不支持辅助索引。

  • 不支持多行事务。

  • 不支持关系功能,如外键。
  • 诸如列和表名称的标识符被限制为有效的 UTF-8 字符串。另外,执行最大长度为 256 个字符。
  • 删除列不会立即回收空间。Compaction 必须先运行。
  • 没有办法手动运行压缩,但删除表将立即回收空间。

Partitioning Limitations ( 分区限制 )

  • 表必须使用简单或复合主键手动预分割成 tablets 。自动拆分还不可能。创建表后,可能会添加或删除范围分区。有关详细信息,请参阅 模式设计
  • 现有表中的数据当前无法自动重新分区。作为解决方法,使用新的分区创建一个新表,并插入旧表的内容。
  • 丢失大多数 replicastablets (例如 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 具有严格的要求。 Kudumastertablet servers在不同步时会崩溃。
  • Kudu 版本只能使用 NTP 进行测试。其他时间同步提供商,如 Chrony 可能或可能不工作。

Scale ( 规模 )

  • 推荐的最大数量的 tablet servers100
  • 建议的最大 masters 数是 3
  • 推荐的最大数量的存储数据,复制后和压缩后每个 tablet server4TB
  • 每个 tablet server 的最大平均 tablets 推荐数量为 1000 次,post-replication
  • 每个 tablet server 的每个表的最大 tablet 数是 60,复制后,创建表。

Replication and Backup Limitations ( 复制和备份限制 )

  • Kudu 当前不包括用于备份和还原的任何内置功能。鼓励用户使用 SparkImpala 等工具,根据需要导出或导入表格。

Security Limitations ( 安全限制 )

  • 授权仅在全系统,粗粒度级别提供。表级,列级和行级授权功能不可用。
  • 据报道,Kudu 已经报告在使用本地块设备加密(例如 dmcrypt )的系统上正确运行 Kudu
  • Kudu 服务器 Kerberos principals 必须遵循模式 kudu/<HOST>@DEFAULT.REALM 。不支持配置备用 Kerberos principal
  • KuduApache Flume 的集成不支持写入需要 Kerberos 认证的 Kudu 集群。
  • 首次联系群集时,Kudu 客户端实例将检索身份验证令牌。这些令牌在一周后到期。使用单个 Kudu 客户端实例超过一周仅由 C ++ 客户端支持,但不受 Java 客户端的支持。

Other Known Issues ( 其他已知问题 )

以下是 Kudu 当前版本的已知错误和问题。他们将在以后的版本中解决。请注意,此列表并不详尽,仅用于沟通最重要的已知问题。

  • 如果 Kudu master 配置了 -log_force_fsync_all 选项,则 tablet server 和客户端将经历频繁的超时,并且集群可能无法使用。
  • 如果 tablet serverstablet 数量很多,可能需要几分钟才能启动。建议将每台服务器的 tablet 数量限制在 100 个以下。在分割表格时考虑这个限制。如果您注意到启动时间较慢,则可以监控 Web UI 中每个服务器的 tablets 数量。
  • hostname 中包含大写字母的 hosts 上,Kerberos 身份验证功能不正确。
  • 如果在 krb5.conf 中配置了 rdns = false ,则 Kerberos 身份验证功能不正常。