Kudu1.7的新功能

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

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

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-07-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏分享达人秀

安装Android模拟器,准备开发

完成以上所有步骤(JDK、ADT Bundle、SDK),那么就可以开始进行Android开发了。 Android程序必须运行在Android系...

9116
来自专栏九彩拼盘的叨叨叨

学习前端 第1周第1天

521
来自专栏古时的风筝

搭建Cordova开发环境

Cordova是什么 Apache Cordova是一套设备API,允许移动应用的开发者使用JavaScript来访问本地设备的功能,比如摄像头、加速计。它可以...

2337
来自专栏.NET后端开发

ADO.NET入门教程(五) 细说数据库连接池

题外话 通过前几章的学习,不知道大家对ADO.NET有一定的了解了没有。撇开文章质量不讲,必须肯定的是,我是用心去写每一篇文章的。无论是是在排版上,还是在内容选...

4129
来自专栏运维技术迷

Zabbix实现QQ报警配置

(说明:这里借助Mojo-Webqq的perl模块,更详细的api参考:https://github.com/sjdy521/Mojo-Webqq/blob/...

6057
来自专栏FreeBuf

安全扫描工具​Nmap引擎理解文档

作者 yiran4827 本文档介绍了Nmap的系统结构及扫描流程,最后重点介绍了Nmap的NSE扫描脚本。 Nmap简介 Nmap也就是Network Map...

2927
来自专栏北京马哥教育

超清晰的 DNS 原理入门指南

来源:阮一峰的网络日志 作者:阮一峰 链接:http://www.ruanyifeng.com/blog/2016/06/dns.html DNS 是互联网核...

3576
来自专栏安全领域

使用JavaScript开发物联网设备也会非常安全

本文将引导你完成一个练习,向你展示如何在 IoTivity 安全框架上使用 Java 对 OCF 设备进行快速原型设计。

48610
来自专栏蓝天

LINUX系统性能调谐

邓延军 (deng.yanjun@163.com), 硕士研究生, 西安电子科技大学软件工程研究所

1652
来自专栏信安之路

这些命令你用过多少?

在拿到一个 webshell 之后,大家首先会想到去把自己的权限提升到最高,windows 我们会提升到 SYSTEM 权限,而 Linux 我们会提升到 ro...

811

扫码关注云+社区

领取腾讯云代金券