新特性
增加了kerberos安全认证,可以通过kerberos tickets或者keytabs文件认证。此新特性是个可选项,推荐在部署环境中增加安全机制。
增加了Transport Layer Security(TLS)网络安全传输协议,kudu将会对任意client和server间的信息通信进行加密。默认加密是开启的,无论client或者server端都可以决定是否启用加密。
增加了粗粒度服务级别的授权。细粒度的授权,例如表级别、字段级别,暂不支持。
增加了清理过期历史版本数据(超过保留时间)的后台任务。减少磁盘空间的使用,特别是有频繁更新的数据。
便于诊断错误,集成了Google Breakpad,它产生的reports可以在配置的日志文件夹中看到。
优化
修改了数据目录和数据文件的权限,可以通过–umask配置。升级之后文件权限会更加严格。
Web UI 去除了一些用户的敏感信息,例如查询时的predicate values。
默认kudu对配置的磁盘预留1%空间,当磁盘空闲空间不足1%时,为避免完全写满磁盘,会停止写入数据。
数字列(int float double)默认编码BIT_SHUFFLE,binary string类型的变成DICT_ENCODING。此类编码存储机制类似于parquet。
WAL使用LZ4压缩,提升写入性能和稳定性。
Delta file使用LZ4压缩,可以提高读和写,特别是频繁更新的可压缩数据。
Kudu API在查询时支持IS NULL 和 IS NOT NULL(KuduPredicate.newIsNotNullPredicate)的pridicate,spark datasource集成可以利用这些新的predicate。
C++ 和 Java client “in partitions”的查询有优化。
Java client的异常信息被截断成最大的32KB。
兼容性
Kudu 1.3 可连接kudu1.0 server,调用新特性时会报错。
kudu 1.1 可连接kudu1.3 server,但当集群配置了安全认证,将会报错。
从1.2滚动升级到1.3没有被充分验证。建议使用者关闭整个集群,升级版本,然后重启新版本,通过这种方式来升级。
升级后,如果1.3版本设置了安全认证(authentication or encryption set to “required”),老版本的client将不能连接服务。
升级后,如果1.3版本没有设置安全认证(set to “optional” or “disabled”),老版本的client还能继续连接server。
不可兼容变化
因为存储格式变化,1.3版本将不能降级到老版本。
为了在配置了安全的集群上跑mr或者spark任务,需要提供认证凭证。
引用
https://github.com/cloudera/kudu/blob/master/docs/release_notes.adoc
个人github https://github.com/qiulp/doc/edit/master/kudu/kudu1.3.0.md