【Alluxio】6W+ 字记录实验全过程 | 探索 Alluxio 经济化数据存储策略

探索背景

随着大数据应用的不断发展,数据仓库、数据湖的大数据实践层出不穷;无论是电信、金融、政府,各个行业的大数据热潮蓬勃发展。在过去的4-5年中,我们不断看到企业用户大数据膨胀问题日益加剧,大数据创新下数据存储成本呈现线性增长,使得企业对于大数据的应用开始变得谨慎、变向放缓了企业内部数据化转型的速度。

核心的挑战:如何更加经济地构建数据湖存储体系。

大数据存储引擎从2006年发布以来,百花齐放,计算侧MapReduce、Spark、Hive、Impala、Presto、Storm、Flink的问世不断突破应用领域,不过在大数据存储方面反而显得慎重与沉稳。在过去十多年,在Apache Hadoop生态被广泛提及的主要还是HDFS与Ozone。

HDFS

Hadoop HDFS 是一种分布式文件系统,旨在在商用硬件上运行以提高其普适性。它与现有的分布式文件系统有很多相似之处。但是,HDFS的特点也是鲜明的:具备高度容错性、旨在部署在低成本硬件、允许水平扩缩容。HDFS提供对应用程序数据访问的高吞吐量,适用于需要处理海量数据集的应用服务。

Ozone

Apache Ozone 是一种高度可扩展的分布式存储,适用于分析、大数据和云原生应用程序。Ozone 支持 S3 兼容对象 API 以及 Hadoop 兼容文件系统协议。它针对高效的对象存储和文件系统操作进行了优化。

经济化数据存储策略,主要体现在两个关键特性上,只要实现了,其他的增强都会如虎添翼:

  1. 使用最合适的存储系统存储对应的数据分块;
  2. 数据存储策略对上层应用的侵入性越低越好;

比如HDFS典型场景下使用3副本的策略,一方面是确保数据块的高可用性,同时多个副本也可以更好地保障数据局部性的要求,提高数据访问的吞吐量;为了更好地提供数据服务,硬件环境也会选用相对更好的磁盘;对于早期的大数据实践而言,标准统一的软硬件选择可以提高对新技术栈的推动,但是随着数据的不断积累,很多数据的访问频率呈现指数级下降,尤其是针对合规检查的冷数据,不仅仅占据了生产集群的大量空间,可能一年到头都没有被访问过一次。这是对资源的极大浪费。

大数据发展的现阶段,精细化数据存储被提上了议程。需要一种分层的存储体系,在维系现有计算性能的同时,将温、冷数据实现对上层应用透明的自主迁移,控制数据存储与维护的成本。

关键特性验证

通过这篇文章,我们希望可以对经济化数据存储策略做一个初步探索,首先我们将先前提到的两个关键特性具象化,然后通过几组实验对技术可行性进行一个讨论。

**关键特性一:**使用一套存储系统作为热数据系统;使用另一套存储系统作为冷数据系统;

**关键特性二:**统一命名空间同时兼容多套存储系统,通过统一命名空间对上层应用提供数据访问服务;

技术选择:

  1. 计算引擎: Hive (大部分企业用户使用SQL引擎作为数据开发工具)
  2. 存储引擎: HDFS/Ozone (业界常用的Apache生态存储)
  3. 数据编排引擎: Alluxio (第三方开源组件,兼容大部分Apache生态组件)

Hive

Apache Hive ? 数据仓库软件有助于使用 SQL 读取、写入和管理驻留在分布式存储中的大型数据集。结构可以投影到已经存储的数据上。提供了一个命令行工具和 JDBC 驱动程序允许用户连接到 Hive。

关于Alluxio

“Alluxio数据编排系统”是全球首个分布式超大规模数据编排系统,孵化于加州大学伯克利分校AMP实验室。自项目开源以来,已有超过来自300多个组织机构的1200多位贡献者参与开发。Alluxio能够在跨集群、跨区域、跨国家的任何云中将数据更紧密地编排到接近数据分析和AI/ML应用程序的集群中,从而向上层应用提供内存级别的数据访问速度。

作为大数据生态系统中的存储与计算分离技术标准,在阿里云、腾讯云、华为云、金山云等国内顶级云厂商服务中得到生产检验,是建设企业私有云的基石和核心技术。2021年成立后,先后荣登“中关村国际前沿科技创新大赛大数据与云计算领域TOP10”、“2021投资界数字科技VENTURE50”、“科创中国”开源创新榜等多项榜单。

软件版本:

  1. 计算引擎:Hive 2.3.9
  2. 存储引擎:Hadoop 2.10.1,Ozone 1.2.1,Alluxio 2.8
  3. 所有组件均为单机模式部署

集群规划:

主机 组件
ip-172-31-30-130.us-west-2.compute.internal Hive、HDFS1
ip-172-31-19-127.us-west-2.compute.internal HDFS2、Ozone
ip-172-31-17-3.us-west-2.compute.internal Alluxio

实验一:基于Alluxio实现跨HDFS的透明数据冷热分层

## Step 1: 在Hive 中创建库、分区表,默认数据存储在 HDFS_1 上

#创建库

#创建表

## Step 2: Alluxio Union URI 实现跨HDFS集群统一命名空间集成

#以Alluxio Union URI 方式挂载测试目录

## Step 3: 修改 Hive 表路径为 Union URI 路径,屏蔽跨异构存储的技术细节

#修改Hive表格对应的路径

## Step 4: 模拟数据

#将模拟数据分别存入hdfs1、hdfs2

#查询hdfs1和hdfs2,确认数据存入完成

#通过查询alluxio Union URI 再次确认数据存入hdfs1和hdfs2,以及Union URI跨存储关联生效

## Step 5: 刷新Hive表元数据

MSCK REPAIR TABLE test.test_part;

hive> MSCK REPAIR TABLE test.test_part;              OK      Partitions not in metastore:    test_part:dt=2022-06-01 test_part:dt=2022-06

                                                        

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月4日
下一篇 2022年7月4日

相关推荐