1.Waggle Dance简介
大数据时代,分布式系统和云迁移称为常态,而数据孤岛问题日益凸显,为了解决这一痛点,ExpediaGroup推出了一个创新的解决方案——waggle dance。
Waggle Dance是一个基于Hive Metastore的请求路由代理,允许跨多个Hive集群并发访问表。它的出现是为了解决数据孤岛问题,数据孤岛问题是随着我们的大型组织逐渐从单一的本地集群迁移到云平台而出现的。
简而言之,Waggle Dance提供了一个统一的端点,我们可以使用它来描述、查询和连接可能存在于多个不同Hive集群中的表。这种部署方案可能存在于不同的区域、帐户或云中(安全和网络允许)。数据集访问不限于Hive查询引擎,应该适用于任何支持Hive Metastore的平台。例如,我们已经成功地将其与Spark一起使用。
我们还使用Waggle Dance将简单的安全层应用于云平台,如Qubole、DataBricks和EMR。这些目前没有提供构建跨平台身份验证和授权策略的方法。因此,我们结合使用Waggle Dance和网络配置,将写入和破坏性Hive操作限制在特定的用户组和应用程序中。
Waggle Dance的设计核心在于其作为代理的能力,它构建了一个虚拟数据库层,将对特定数据库的请求路由到实际的多个Hive Metastore服务。通过配置映射规则,能够智能地转发查询到正确的目标Metastore,从而实现数据的无缝整合。该系统架构图展示了如何通过虚拟数据库名动态指向不同的Metastore服务,确保了灵活性和扩展性。
比如有有一个映射关系如下表所示:
如果我们通过Hive Client连接到Waggle Dance实例,执行以下sql:
select * from mydbv.table1;
实际上,waggle-dance实例会通过thrift接口请求到对应的metastore,所有的Metastore请求都会被转发,数据拉取到本地处理,这样我们就可以通过简单的Hive Client来处理和join来自不同Hive集群的数据。
此外,安全性也是Waggle Dance设计的重点之一。它可以通过网络层配置和自身设置来限制对特定资源的读写权限,尤其适用于缺乏跨平台认证策略的云服务,比如Dubole、DataBricks和EMR,为数据访问增加了额外的安全屏障。
1.1.Waggle Dance的适用场景
在一个多云的、多集群的复杂环境中,Waggle Dance能够让你的SQL查询跨越界限,无须关注物理存放的位置。无论是跨区域的数据分析,还是在混合云环境中进行统一数据治理,Waggle Dance都大显身手。特别是在数据科学家和工程师需要从不同Hive部署中集成数据以进行联合分析时,它的价值不言而喻。
1.2.Waggle Dance特点
主要有以下特点:
(1)透明化联邦:提供单一访问端点,隐藏复杂的后端部署结构。
(2)灵活映射:自定义的数据库映射机制,便于管理多数据源。
(3)安全控制:增加一层逻辑控制,保护关键数据不被误操作。
(4)广泛兼容:不仅仅服务于Hive,也支持其他依赖Hive Metastore的生态系统。
(5)易于部署与监控:提供了RPM和TGZ两种安装部署方式,集成了日志管理和状态监控。
1.3.Waggle Dance应用案例
Waggle Dance在多个场景中有广泛的应用,例如:
(1)数据湖管理:在数据湖架构中,Waggle Dance可以帮助管理多个Hive集群的元数据,实现统一的数据访问接口。
(2)多租户环境:在多租户环境中,Waggle Dance可以为每个租户提供独立的Hive元数据存储,同时保持统一的访问层。
2.Waggle Dance最佳实践
在生产实践过程中,需要注意以下问题:
(1)配置优化:根据实际需求,合理配置各个Hive Metastore的访问策略,以提高性能和安全性。
(2)监控和日志:定期检查Waggle Dance的运行日志,及时发现和解决潜在的问题。
(3)保持Waggle Dance和Hive元数据存储的版本兼容性,避免不必要的问题。