这篇博客文章是CDP中Cloudera的操作数据库(OpDB)系列文章的一部分。每篇文章都会详细介绍新功能。从该系列的开头开始,请参阅《CDP中的运营数据库》,《运营数据库系列之可访问性》,《运营数据库系列之管理篇》。
这篇博客文章概述了Cloudera OpDB的高可用性的配置功能。
Cloudera的运营数据库(OpDB)是基于集群的软件,它开箱即用地配置为具有高可用性(HA)的特性。
这将导致节点之间的无缝自动故障转移,并使配置路径对故障转移也具有弹性,这意味着可以在不关闭OpDB的情况下将其恢复。
HA可以通过以下功能进一步扩展:
• 异步复制:在本地、跨数据中心、在数据中心和云之间以及以地理分布的方式。
• 扩展集群配置:带有网络延迟(建议链接延迟小于20毫秒)。距离可能会有所不同,具体取决于网络负载延迟和带宽。
• 只读副本:它们在数据库中提供了额外的弹性。
在线重组和配置更改
Cloudera的OpDB允许数据库重组,而无需关闭OpDB。这是因为命名空间大致等同于DB,并且可以将它们分配给集群中的不同服务器集而无需关闭集群。
可以在区域中的节点之间移动名称空间,也可以通过区域服务器组将名称空间限制为节点的子集,而不必考虑节点在集群中的物理位置,或者集群是否跨越扩展集群配置中的数据中心。
还支持索引重组。大多数索引(例如近实时索引)都可以在实时系统中创建、修改或删除。其他索引可以在线创建或删除,但不能修改。
也可以在不停止OpDB的情况下更改配置。可以在实时系统中添加和删除节点、表和列,还可以在不停机的情况下添加SQL引擎和辅助组件。
还支持不关闭同一数据库上多个实例的配置更改。例如,可以在“列族”中添加新列,也可以将应用程序更改为使用该新列。
升级
Cloudera Manager通过发行版和维护补丁程序自动化升级OpDB中各种组件的过程。
Cloudera Manager以自动化方式处理以下流程:
• 安装发行或维护补丁
• 管理配置
• 每个受影响的组件的重新启动过程
Cloudera的OpDB产品是基于集群的产品,因此所有升级和补丁都跨越多个节点。
还支持无停机的应用程序升级。升级用户应用程序时,无需关闭任何存储引擎。
复写
支持所有数据复制(DR)组合:
• 热热
• 温热
• 热冷
• 热热冷
• 这些配置的其他排列
复制的方向可以是通过高级地理分布拓扑的单向、双向或多向复制。
数据库在集群中至少维护三个数据副本(可以配置更多副本),以防止在热灾难恢复环境中中断。但是,如果需要这种方法,则提供了多种机制以允许在热环境中创建数据的副本:
• Snapshots
• Replication
• Export
• CopyTable
• HTable API
Active-hot DR站点可用于所有形式的访问,包括只读、读写、仅写等。多向复制可用于保持数据同步,并可在数据库中进行设置(命名空间)级别以及表级别。
还以与Active-hot DR站点相同的方式支持热和冷DR站点。所有站点均以相同方式获得许可,而无需考虑站点类型。
异步复制
Cloudera的OpDB平台支持在同一OpDB的实例之间进行近乎实时的数据异步复制,而对性能的影响最小。
异步复制具有两种一致性模式:最终一致和时间轴一致
有多种方法可以实现异步复制。
基于存储层的方法
基于存储层的异步复制方法是在多个集群之间异步复制数据。
集群复制使用主动推送方法。集群可以是源集群(也称为主动集群,表示它写入新数据),目标集群(也称为被动集群,表示它使用复制接收数据),或者可以一次完成这两个角色。
这种异步集群复制是指使用源集群的预写日志(WAL)传播更改,从而使一个集群状态与另一集群状态保持同步。
以列族的粒度启用复制。列族是在表创建时定义的列分组,与在表创建时不必定义的列形成对照,因为它们可以在插入时动态创建。
当数据从一个集群复制到另一集群时,将使用集群ID(属于元数据的一部分)跟踪数据的原始来源。还跟踪所有已经使用了数据的集群。这样可以防止复制循环。
常见的复制技术:
• 中央源集群可以将更改传播到多个目标集群,以进行故障转移或者由于地理分布。
• 源集群可以将更改推送到目标集群,目标集群也可以将自己的更改推送回原始集群。
• 许多不同的低延迟集群可以将更改推送到一个集中式集群,以进行备份或资源密集型数据分析作业。然后,可以将处理后的数据复制回低延迟集群。
多种级别的复写可以链接起来,以满足您的需求。
双重写范例
实现异步复制的另一种方法是使用双重写入范例,客户端可以将数据写入我们的持久消息队列中,然后将其写入数据库的两个实例中。
这种方法适用于某些最终一致性足以满足编写要求的用例。
同步复制
Cloudera的OpDB支持将同一集群的节点之间的数据同步复制为非可选默认值。
每次写入均被复制到最少三个节点,然后再确认回客户端。您可以配置将写操作复制到的节点数。
异构复制
异构OpDB复制允许OpDB在不同的OpDB供应商之间进行复制。当组织中使用多个不同的OpDB引擎或在向新OpDB平台的迁移过程中使用此引擎时,这一点很重要。
Cloudera提供了多种工具来支持异构OpDB复制,而无需额外费用。例如,提供Nifi来启用流式接收,并从任何关系DBMS导出到Cloudera的OpDB。
只读副本
可以创建只读副本,这意味着它不支持对象的更新、删除或创建。这种类型的副本适用于只读工作负载分配和业务连续性计划。
您可以通过两种不同的方式创建只读版本:
• 将数据库复制到标记为只读的第二个集群。
• 使用“只读副本”功能,客户端将请求发送到托管数据副本(包括主副本)的所有RegionServer。客户端接受第一个响应,包括它是来自主要还是辅助RegionServer。
读取和写入操作读取/写入副本
读/写RrReplicas支持读和写操作,作为具有冲突解决方案的双活集群的一部分。当复制用于双向同步两个不同的集群时,这种类型的副本非常有用。这使两个集群都可以在双活配置中写入。
在单个集群的范围内,所有写入均以分布式方式完成,确保在确认客户端之前,在多个节点上至少写入三个副本。这是通过解决冲突来完成的,以确保为客户端提供强大的一致性。
错误保护
OpDB还可以防止用户错误。我们的两个存储引擎都提供了此功能。
如果用户出现类似“我不是要删除该记录”的错误,则用户可以在使用setTimeRange 删除之前检索记录记录。
此外,定期进行增量备份或快照使用户可以回滚到上一个保存的恢复点。
结论
在此博客文章中,我们研究了如何在OpDB中配置和使用高可用性功能。在下一篇文章中,我们将介绍CDP中OpDB的数据完整性功能。
原文链接:https://blog.cloudera.com/operational-database-availability/
作者:Liliana Kadar