前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kudu1.7的新功能

Kudu1.7的新功能

作者头像
Fayson
发布2018-08-03 14:39:24
1.2K0
发布2018-08-03 14:39:24
举报
文章被收录于专栏:Hadoop实操Hadoop实操

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

前两天Fayson介绍过《CDH5.15和CM5.15的新功能》,与CDH5.15同时发布的还有CDSW1.4和Kudu1.7,CDSW1.4的新功能可以参考《CDSW1.4的新功能》,以下我们具体看看Kudu1.7的新功能。

1.Kudu1.7的新功能

1.Kudu现在开始支持decimal的字段类型。

2.因为服务器或者磁盘故障导致tablets丢失副本,改进Kudu用于自动修复的策略。新的副本重新复制的策略是首先添加一个替换的tablet副本,然后再移除失败的副本。而之前是先移除失败的副本,然后再添加替换的tablet副本。在一个tablet server发生故障并在5分钟以内又快速返回的情况下,新的副本管理方案允许tablets的快速恢复。新方案还在频繁发生服务器故障的集群上提供了更好的整体稳定性。

3.kudu fs update_dirs工具现在支持删除目录。除非指定了--force参数,Kudu不允许删除配置存储tablet数据的目录。如果指定了--force参数,则配置为使用该目录的所有tablet副本在启动时将失败,并在其他地方开始复制,前提是其他地方有多数的副本。

4.用户可以使用新的--fs_metadata_dir命令指定放置特定于tablet元数据的目录。建议将其放置在高性能低延迟的设备上,比如SSD。如果未指定,则元数据将会放在--fs_wal_dir指定的目录中,或者放在--fs_data_dirs的第一个条目指定的目录中(如果早期部署中已存在元数据)。Kudu不会根据此配置自动移动现有元数据。

5.READ_YOUR_WRITES是一种新的扫描读取模式。 在C++,Java和Python客户端中创建一个新的scanner时,你可以指定READ_YOUR_WRITES。如果使用这种模式,客户端在执行读取操作时,会知道此客户端先前所有写入和读取。在此模式下读取,可确保会话基于 "read-your-writes"和"read-your-reads",同时最大限度地减少因等待未完成的写入事务而导致的延迟。不过这还是一个实验性功能,需要等待后续版本的完善和稳定。

6.tablet server的web UI的“扫描仪表盘”(/scans)增加了如下新功能:

  • 显示最近完成的扫描。
  • Pseudo-SQL scan descriptor,简明地显示所选字段和应用的谓词。
  • 更完整,更好的文档扫描统计信息。

7.Kudu daemons现在开放了一个网页,可以dump出每个服务器中运行的每个线程的当前stack trace信息。当诊断性能问题时,此信息可能会有帮助。

2.Kudu1.7的优化和提升

2.默认情况下,每个tablet副本现在跨三个数据目录而不是所有数据目录对数据块进行条带化。 这降低了单个磁盘发生故障时对tablet造成的影响。性能测试表明该功能不会对性能产生影响。该功能适用于升级到Kudu1.7后创建的新副本。

2.Kudu服务器之前提供了启用单独的指标日志的功能,该日志存储服务器上可用的所有指标的定期快照。此功能现在可以作为“诊断日志”的一部分,该功能默认启用。诊断日志包括定期dump出来的服务器指标和线程堆栈的集合。默认情况下,该诊断日志不会超过640MB,因为使用压缩,实际会更小。

3.改进了同步Java客户端中的错误处理,以便在抛出异常时,堆栈跟踪指示调用客户端函数的正确位置,而不是内部工作线程的调用堆栈。来自工作线程的原始调用堆栈可用作抑制异常(suppressed exception)。

4.现在,Java客户端与Kudu服务器在建立加密连接时,使用预定义的TLS密码优先级列表。此密码列表与服务器到服务器通信首选的密码列表相匹配,并确保最有效和最安全的密码也是首选的。 当Kudu客户端在Java 8或更高版本上运行时,可以显著提高读写性能。

5.更新了kudu cluster ksck工具的报告,正在进行的tablet拷贝的tablets和表会显示为正在恢复。这项报告更新可以使更多的常用场景尤其是tablet拷贝有更少的告警。

6.改进了插入包含许多字符串或二进制字段的行的性能,尤其是在高并发写入工作负载的情况下。

7.默认情况下,扫描Kudu的Spark任务现在可以扫描非leader的副本。这使Spark更容易调度kudu-spark任务,并保证数据的本地性。你可以通过将leader_only传给kudu.scanLocality选项来禁用此功能。

8.在稳定状态和突发活动期间使用的OS线程数量,例如由节点故障触发的Raft领导者选举,已大幅减少,不应再超过ulimit -u的值。在大多数情况下,运行Kudu tablet的服务器不再需要增加ulimit -u或/proc/sys/kernel/threads-max的值。

9.已修复了稀疏列谓词可能导致过多数据块读取的问题。以前在这类扫描中,在多列上使用稀疏匹配的谓词,Kudu会多次读取和解码相同的数据块。这个修复可以将此类扫描的性能提升5-10倍。

10.提升了更新较大的值的性能,比如更新大于1KB的值的工作负载。

3.Wire Protocol兼容性

Kudu 1.7.0 / CDH 5.15.0与之前的Kudu版本的wire-compatible

1.Kudu1.7客户端可以连接到运行Kudu1.0或更高版本的服务器。如果客户端使用的功能在目标服务器上没有,则会返回报错。

2.滚动升级到Kudu1.7尚未得到充分的测试。我们不推荐对Kudu使用滚动升级。你可以关闭集群中的所有节点,然后升级Kudu,然后再重启。

3.除了下面提到的有关安全集群的限制之外,Kudu1.0客户端可以连接到运行Kudu 1.7的服务器。

Kudu1.3中引入的身份验证功能对Kudu1.7和1.3之前的版本之间的wire compatibility具有以下限制:

1.如果Kudu1.7集群配置了身份验证或加密设置为required,则早于Kudu1.3的客户端无法连接。

2.如果Kudu1.7集群配置了身份验证并且加密设置为可选或禁用,则旧客户端仍然可以连接。

4.客户端库兼容性

1.Kudu1.7的Java客户端库与Kudu1.6保持API与ABI兼容。针对Kudu1.6编写的应用程序可以在Kudu1.7客户端库进行编译和运行,反之亦然。

2.Kudu1.7 C++客户端与Kudu1.6的API和ABI向前兼容。针对Kudu1.6客户端库编写和编译的应用程序无需修改Kudu1.7客户端库即可运行。针对Kudu1.7客户端库编写和编译的应用程序无需修改Kudu1.6客户端库即可运行。

3.Kudu1.7 Python客户端与Kudu1.6保持API兼容。针对Kudu1.6编写的应用程序可以继续在Kudu1.7客户端运行,反之亦然。

4.在Kudu1.6的服务器上,使用Kudu1.7客户端创建带有decimal类型字段的表时会报错。同样,使用Kudu1.6客户端创建带有decimal类型字段的表时会报错。

5.Kudu1.7/CDH5.15不兼容性改动

1.新引入的副本管理方案与旧方案不兼容,因此无法将Kudu1.7之前的的Master Server与Kudu1.7的Tablet Server一起运行,反之亦然。这是服务端的不兼容,并不会影响客户端的兼容性。旧版本的Kudu客户端可以运行在新的Kudu服务端上。

2.先前可选的指标日志在每行增加了可供人阅读的时间戳。日志文件的路径也发生了变化,“diagnostics”替换了文件名中的“metrics”。优化了指标日志仅包含连续样本之间发生变化的那些指标,并不包含实体属性比如tablet分区信息。

原文参考:

https://www.cloudera.com/documentation/enterprise/release-notes/topics/kudu_release_notes.html#relnotes_5_15_0

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档