加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用 Alluxio 统一结构化大数据

发布时间:2022-12-03 15:32:55 所属栏目:大数据 来源:网络
导读: 理解在分析存储于数据仓库的结构化大数据时Alluxio所带来的益处。
1. 摘要
问题描述:对存储在不同仓库中的结构化大数据进行分析是大型企业面临的挑战
传统方法:数据湖
新方案:Alluxio虚

理解在分析存储于数据仓库的结构化大数据时Alluxio所带来的益处。

1. 摘要

问题描述:对存储在不同仓库中的结构化大数据进行分析是大型企业面临的挑战

传统方法:数据湖

新方案:Alluxio虚拟分布式文件系统

SQL代码示例:包括一个技术示例,用于在跨多个存储集群的表中使用Spark SQL执行和持久化SQL join。

2. 介绍

随着数据量的增长,大型企业正在采用大数据技术来处理涉及PetaByte规模的结构化和非结构化数据。大数据通常存储在许多系统和业务单元中。企业要求技术团队以高性能和成本有效的方式在这些系统中提供统一的、聚合的数据视图。

这篇文章介绍了Alluxio和它如何独特地解决了结构化大数据统一管理和访问的难题。

3. 统一大数据的传统方法

当大型企业不能保证其大数据存在于一个单源系统或数据湖中时,企业就需要解决大数据统一访问的难题。这通常是通过自定义应用层解决方案或创建数据湖来解决的。事实上,这些解决方案通常会很困难:

自定义解决方案

传统的数据湖

4. 统一大数据——Alluxio之道

Alluxio是世界上第一个内存级速度的虚拟分布式文件系统。它统一了数据访问并且连接了计算框架和底层的存储系统。应用程序只需要连接到Alluxio就可以访问存储在任何底层存储系统中的数据。此外,Alluxio架构能够以内存速度访问数据,提供了最快的I/O。

在大数据生态系统中,Alluxio位于计算和存储中间。它可以为生态系统带来显著的性能提升,尤其是跨数据中心和可用性区域。Alluxio是Hadoop和对象存储兼容的,并且支持对底层存储进行读写。现有的数据分析应用程序大数据存储系统,如Hive、HBASE和Spark SQL,可以在不更改任何代码的情况下运行在Alluxio上。

Alluxio的益处

Alluxio提供的创新功能

全局命名空间:用户以一个单机虚拟文件系统中的挂载点的方式与底层存储进行交互,从而简化了访问。

服务器端API转换:用户通过HDFS或S3A来与Alluxio进行通信。但是,底层存储系统不需要本地支持HDFS或S3A。任何具有兼容接口的存储系统都可以作为底层存储被挂载,并且Alluxio使得服务器端API和应用程序选择的接口的转换变得容易。通过Alluxio的模块化架构也可以添加新的自定义接口。Alluxio的转换能力提升了你的企业架构的互通性并且简化了开发。

兼容的底层存储接口:HDFS,NFS,Amazon S3A,Azure Blob Storage或Google Cloud Storage。

带内缓存:缓存对用户是带内或透明的,并使用集中管理策略进行控制。用户不需要付出任何努力就可以从改进的性能中获益,并且管理是有组织地进行维护。

样本用例:

在这个示例企业中,与客户交互相关的所有数据位于两个不同的系统中:销售系统包含客户所购买的所有产品的信息,客户支持系统包含客户记录的所有支持案例信息。这两个系统是相互孤立的,但是为了了解客户的所有交互情况,必须联合这两个孤立系统进行查询,并将结果以客户视图的方式提供给用户。

统一SQL查询:一个示例

一旦底层存储系统通过Alluxio进行统一后,SQL引擎就可以和底层表进行交互,就好像它们是单个系统的一部分一样。

在下面的示例中,Spark SQL将加载来自不同集群的两张表,这些表位于Alluxio的”/mnt/a”和“/mnt/b”中并且将结果写入“/mnt/c”中的第三个集群。

5. 性能和存储成本

大多数情况下,在一次分析中一个语料库中只有一部分数据被使用。这个比例通常不到20%。传统地,企业必须在对重要且经常使用的数据提供快速访问和对所有数据提供统一访问之间进行权衡,这会增加技术预算的重大成本。

Alluxio在允许对企业数据进行有效统一访问的同时,也提供了按需快速本地访问分析使用的数据。作为一个虚拟文件系统,Alluxio的全局命名空间允许用户浏览并与被挂载系统中的文件元数据进行交互。但是,只有当用户需要它时才会访问数据,并且可以透明地缓存已请求的文件数据。这种即时的设计理念使Alluxio能够同时解决性能和成本方面的难题。

设计挑战和缓存

在设计高性能大数据架构时,必须解决现代基础设施的两个现实问题:

当对性能有需求时,Alluxio会用它的本地智能缓存来解决数据局部性和低成本存储的难题。

缓存的管理方式有两种:

管理员决定Alluxio可用的缓存空间大小来提供性能比的最佳成本,而智能策略将透明地管理留在缓存空间中的数据。当缓存空间满时,数据访问继续正常进行,而智能缓存优先处理数据。

使用Alluxio的完全集成缓存,应用程序用户能够以一种透明的方式高速地访问来自远程或缓慢存储系统的数据,同时允许企业控制存储成本。

分层缓存

Alluxio可以并存在数据中心或计算和作业执行的可用性区域中,并且可以安装在现有的计算节点、专用节点或两者结合。Alluxio的缓存可以设置为RAM、SSD和HDD,通过配置为其预留空间。

用户定义用于固定、多层升级/降级和TTL的策略。例如,一种常见的分层方法是:

默认情况下,数据被缓存到顶层,并根据需要将数据驱逐到下一层。管理员可以控制这些全局策略,还可以在底层存储中设置定制的缓存策略,从而更好地控制了Alluxio的存储资源。如果授权,用户也可以每次请求都指定缓存覆盖。

存储成本优化

由于性能和互用性的考虑,现在CIOs通常必须选择昂贵的存储技术,而不是成本更低的替代方案。

通过使用Alluxio,CIOs可以加速企业存档策略,将更多的数据转到低成本的存储技术。

6. 企业级的考虑

PetaByte规模的数据

大多数大型企业都有PetaByte规模的结构化大数据。通常看到的逻辑大数据表都是TeraByte规模的。为了改进操作,这些大表通常被划分为表分区文件。大数据存储系统(例如,HDFS和对象存储)将大型文件分割成MegaByte规模的数据块。数据块级存储允许对大数据文件进行细粒度控制并且最小化整个网络的数据流。Alluxio被设计成可以和HDFS和对象存储无缝地工作,并且只透明地返回满足请求所需的块。这保证了不会以I/O瓶颈或大规模数据移动为代价进行数据统一。

元数据的管理

Alluxio共享了一个在领先的大数据系统如HDFS和对象存储中常见的基础设计假设,即数据是不可变的,也就是说,它们一旦被写入,就永远不会被修改。不可变数据允许系统突破随机写入需求所造成的规模限制。Alluxio引入了不可变数据以确保元数据与底层存储的同步是一种低开销操作。当新文件被写入时,如果通过Alluxio来添加,可以立即使用它们。文件如果被添加到Alluxio外的底层存储时,将根据用户定义的元数据刷新策略来与Alluxio同步。在这两种情况下,Alluxio中的元数据都保持同步,从而简化了用户的数据访问。

安全性

对于大型企业来说,数据安全性是极其重要的。除了数据统一管理访问之外,Alluxio还可以作为跨多个存储系统的统一安全层。

用户身份认证

在一个具有统一身份服务的企业中,Alluxio简单地认为服务是真理的来源,并且不负责在多个服务之间统一身份。身份服务如LDAP,通过不同的身份认证和IAM协议连接到不同的存储库中。

如果一个企业组织没有统一的身份认证服务,Alluxio会提供一个灵活的凭证管理方法,以实现多个底层存储的安全连接。在Alluxio中,用户身份认证是通过Kerberos实现的,这与底层存储身份认证是分离的,而是使用底层存储支持的身份认证方法实现的。

访问控制

Alluxio提供了一个类似于当前POSIX-compliant模型的统一访问控制模型。此外,它还添加了类UNIX的访问控制列表(ACLs)来支持任何用户或组的细粒度权限控制。

如果用户在LDAP身份存储中进行管理,Alluxio也可以与Active Directory和LDAP进行集成,以查询用户的组成员身份并实现访问控制。

当访问远程安全的Hadoop集群中的数据时,Alluxio支持HDFS用户模拟,这是一种安全的最佳实践。通过模拟,Alluxio可以代表客户端请求数据访问。这使得Hadoop集群能够维护完整的用户授权,并使Alluxio成为一个透明的数据代理。管理员使用现有的Hadoop工具如Cloudera Sentry和Apache Ranger来管理安全性。

加密

Alluxio支持挂载加密的数据源。由于Alluxio本身对数据块中的具体内容不作语义结构感知,所以加密的数据不会影响Alluxio的核心操作。

例如,如果一个SQL引擎需要访问加密的HDFS数据,Alluxio会模拟客户端的用户并代表用户请求访问。一旦授权,数据将被解密并以正常的形式返回给用户。如果同时启用了缓存,数据将以未加密的方式存储的Alluxio中。还可以启用Kerberos以进一步安全访问。

如果数据还没有在底层存储中加密,或者如果缓存在Alluxio需要加密,Alluxio也会代表客户端应用支持加密/解密。即使加密不是由存储系统本身进行全局配置的,也可以将由Alluxio加密的数据存储回底层存储中。

灵活性&集中性

许多大型企业都希望利用灵活性和集中性来优化它们的资源使用。为了实现这种转变,应用程序堆栈正在被重新设计,以分离计算和存储。Alluxio的设计促进了这种分离的关注。

系统本身也被设计成可以随着资源需求的变化而上下伸缩,并且可以通过中间层的合作关系与中间层DC/OS和Kubernetes等企业资源管理人员一起使用。在这些环境下,可以使用Alluxio来统一驻留在这些集群之外的数据。

容错

Alluxio是一个具有内置容错功能的分布式可扩展系统。任何组件都没有单点故障,并且在一个组件崩溃的情况下,也不会有数据丢失。建议使用多master方法来部署Alluxio。

底层存储也可以通过Alluxio底层存储复制特性来复制,这一特性支持Alluxio集群之外的高可用性需求。

7. 结论

随着大型企业努力应对日益增长的大规模数据、越来越多的存储技术和激增的应用程序,大数据的统一正成为使用传统方法管理的难题。

Alluxio是第一个将大数据统一起来的存储虚拟化技术,不需要拥有自己的永久副本并且充当一个“虚拟数据湖”。应用程序使用工业标准接口和一个全局命名空间访问Alluxio中的文件,就像这些文件在一个传统的数据湖中一样。Alluxio独特之处在于底层存储的集成是通过配置完成而不是通过ETL进行,并且数据驻留在它的源系统中,有效地消除了陈旧的数据。

Alluxio将更多的数据迁移到低成本的存储中,并且提供快速本地访问重要且频繁使用的数据,从而允许企业优化存储成本。所有的这些都是在可扩展的、安全和容错的分布式系统中实现的。返回搜狐,查看更多

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!