购物网站开发背景及意义,网站经营模式,怎么制作网站记事本,服装公司网站源码不多说#xff0c;直接上干货#xff01; Kudu1.1.0 新特性 python API升级#xff0c;具备JAVA Cclient一样的功能#xff08;从0.3版本直接升级到1.1#xff09;#xff0c;主要的点如下#xff1a; 1.1. 改进了Parial Row的语义 1.2. 增加了range partition支持 1.3.… 不多说直接上干货 Kudu1.1.0 新特性 python API升级具备JAVA Cclient一样的功能从0.3版本直接升级到1.1主要的点如下 1.1. 改进了Parial Row的语义 1.2. 增加了range partition支持 1.3. 提供了 scan api 1.4. 增强predicate支持 1.5. 支持所有kudu的类型包括datetime.datetime转化成UNIXTIME_MICROS 1.6. 支持修改表alter 1.7. scanner可以读取快照数据 1.8. 支持scanner副本选择 1.9. python 1.10. 一些bug的修复为了优化过滤增加了IN LIST predicate pushdown的支持即匹配一列中一个集合的数据predicate push down类似于hbase的协处理器coprocessors有些过滤在后台执行。spark、mr和impala query的此项功能还没有完成。 为了便于查错Java client增加了client-side请求追踪。原先只有最终的错误日志没有导致最终错误其他日志信息。优化和改进 kudu发布了spark2.0编译于scala2.11的JAR。通过配置java client可以从最近的副本读取数据而不是原先的从leader副本读取数据。不过默认还是后者可以通过设置scanner builder replicaSelection参数来调整。Tablet server采用一种新策略来维护write-ahead logWAL。原先使用log_min_segments_to_retain2的策略这种策略会过于频繁flush内存数据限制了写入的性能。新策略引入了一个新的参数log_target_replay_size_mb它决定了flush内存数据的阀值而且这个参数值已经经过实验验证用户不需要去修改它。这个新策略在某些写入用例下提升了相对2x倍的写入性能。kudu Raft consensus algorithm 算法加入了一个新的阶段pre-election它可以在高负荷的情况下更稳定的进行leader选举特别在一个tabletserver含有大量的tablet的情况下。提升了在tabletserver含有大量的tombstoned tablet时tabletserver的启动的速度。工具 kudu tablet leader_step_downstep down一个leader tablet。kudu remote_replica copy拷贝tablet从一个running tabletserver。kudu local_replica delet删除tablet。kudu test loadgen 兼容性 1.1的client可以连接到1.0的kudu服务。1.0的client可以无限制的连接到1.1kudu服务。滚动升级从1.0到1.1是可能的但是没有完整的测试。建议安装关闭所有节点更新版本启动更新的节点的步骤来升级。 参考 https://github.com/cloudera/kudu/blob/master/docs/prior_release_notes.adoc 个人github https://github.com/qiulp/doc/edit/master/kudu/kudu1.1.0.md Kudu1.2.0 新特性 kudu clients和servers可以编辑用户的数据例如log信息java的异常信息和状态信息。但用户的元数据是不可编辑的例如表名字段名分区边界。默认是可编辑的但可以通过设置log_redact_user_datafalse关闭。 kudu一致性保证的能力大幅度提升了 每个副本都会track它们的 safe timestamp这个时间戳是最大时间戳在这个时间戳上读是可重复的。 SCAN_AT_SNAPSHOT模式的scan要不等待本副本的snapshot safe后再查要不路由到一个safe的副本查。如此保证数据scan是可重复的。 Kudu会保留以往所有历史数据无论是插入还是删除还是相同key插入一条新的数据。以往版本的kudu不会保留历史数据在这种情况下。如此tablet server可以得到历史某一时间段点的准确的快照即便是重新插入的情形。 kudu client会自动记住它们最近成功读取或者写入操作的时间戳。在使用READ_AT_SNAPSHOT模式且没有指定时间戳的情况下scan会自动指定一个比最近写入时间戳大的时间戳。写入同样会传播timestamp确认一系列的有因果关系的操作能被指定有序的时间戳。总的来说这个改变可以保证数据的读写一致性同样保证了在其他clients上的快照查询能等到一致的结果。 kuduserver自动限制了log文件数量默认是10个通过参数max_log_files设置。 优化和改进 java和cclient的日志将会变得更平和不在记录正常操作的日志而记录error日志。cclient提供一个KuduSession::SetErrorBufferSpace API通过它可以限制同步操作异常的buffer大小。java client可以获取tablet地址信息1000个一个批次原先是10。如此可以提升spark或者impala查询具有大量tablets的表性能。kudu master表元数据信息的锁竞争大幅度缓解。如此提升了在大集群环境下寻址tablet的高并发度。tablet server端的高并发写的锁竞争同样被缓解了。写日志的锁竞争也被缓解。 修复的bug KUDU-1508ext4file的文件系统损坏。KUDU-1399实现LRU cache解决长时间运行的kudu机器openfiles不够的问题。默认kudu会使用ulimit的一半的量。 省略 兼容性 1.2.0与历史版本兼容1.2client可以了解1.0server只是有些没有的功能不可用。1.0cleint可以连接1.2没有任何限制。滚动升级从1.0到1.1是可能的但是没有完整的测试。建议安装关闭所有节点更新版本启动更新的节点的步骤来升级。 不可兼容变化 副本因子最大值改成7并且副本不能是偶数。不提供GROUP_VARINT无损压缩算法。 约束性 列数建议不超过300列建议列数越少越好。cell大小不能大于64KB不然写入时client有error信息。有效标识符表名列名严格要求是UTF-8且不能超过256个字符。引用 https://github.com/cloudera/kudu/blob/master/docs/release_notes.adoc 我的github https://github.com/qiulp/doc/blob/master/kudu/kudu1.2.0.md Kudu1.3.0 新特性 增加了kerberos安全认证可以通过kerberos tickets或者keytabs文件认证。此新特性是个可选项推荐在部署环境中增加安全机制。 增加了Transport Layer SecurityTLS网络安全传输协议kudu将会对任意client和server间的信息通信进行加密。默认加密是开启的无论client或者server端都可以决定是否启用加密。 增加了粗粒度服务级别的授权。细粒度的授权例如表级别、字段级别暂不支持。 增加了清理过期历史版本数据超过保留时间的后台任务。减少磁盘空间的使用特别是有频繁更新的数据。 便于诊断错误集成了Google Breakpad它产生的reports可以在配置的日志文件夹中看到。 优化 修改了数据目录和数据文件的权限可以通过–umask配置。升级之后文件权限会更加严格。 Web UI 去除了一些用户的敏感信息例如查询时的predicate values。 默认kudu对配置的磁盘预留1%空间当磁盘空闲空间不足1%时为避免完全写满磁盘会停止写入数据。 数字列int float double默认编码BIT_SHUFFLEbinary string类型的变成DICT_ENCODING。此类编码存储机制类似于parquet。 WAL使用LZ4压缩提升写入性能和稳定性。 Delta file使用LZ4压缩可以提高读和写特别是频繁更新的可压缩数据。 Kudu API在查询时支持IS NULL 和 IS NOT NULLKuduPredicate.newIsNotNullPredicate的pridicatespark 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