HDFS整合S3对象存储——Hadoop 以外的东西

1,601 阅读3分钟

关于数据存储的思考

前言

目前数据中台采用hdfs作为数据存储系统,主要存储是结构化数据,作为hive以及hbase的存储依赖。随着需求的变化,现在不仅仅要存储结构化数据还要存储非结构化数据,视频,音频,图片等。

思考

hdfs作为大数据集群的存储系统,是否适合这些非结构数据呢?

分析

使用hdfs

优点:不用再去使用另外一套存储系统,直接使用现有的hdfs,可以直接使用spark、yarn、mapreduce等大数据集群自带的计算和资源。

缺点:随着非结构化数据量的增大(尤其是大量小图片),hdfs的namenode的压力比较大,可能会有存储频繁扩容的问题,运维压力巨大。

使用S3对象存储

优点:天然的支持这些视频、图片、音频的非结构存储;良好的拓展性、拓展集群运维成本较低;具有较好的数据管理功能,元数据,版本管理,数据分类和标记;使用s3对象存储可以存算分离。

缺点:对于现有的存储架构的兼容问题,是否需要分为两套存储系统分来管理,

确定方案

说到这里了,那肯定是开始搞了啊,要不然也不会思考这么多。

使用对象存储+hdfs进行混合存储,hdfs存储结构化文件,主要为数仓、数据治理提供存储能力;对象存储存储非结构化文件,视频、小文件图片等,可以为算法做存储介质。

分类

存算分离的发展是必然的,随着数据爆发式增长,存储就是必然要面对的问题。hadoop的框架是hdfs+mapreduce+yarn一站式解决方案,这种方案即是优点又成为了它的缺点,当我们数据量增加时,我们仅仅增加磁盘是不够的,因为数据计算中的数据本地性是很重要的,也就是说增加存储资源的同时必须增加计算资源。

使用对象存储后,我们非结构数据一般是视频、图片、文档等数据;这类数据一般可能用于算法的分析,s3本身只负责存储,计算他不关心

现代数据

Hadoop 专为机器数据构建,其中“非结构化数据”是指大型(GiB 到 TiB 大小)日志文件。 当用作真正非结构化数据的通用存储平台时,小对象(KB 到 MB)的流行极大地损害了 Hadoop HDFS,因为名称节点从未设计为以这种方式扩展。

性能

Hadoop 因其提供大数据性能的能力而声名鹊起。 在过去十年的大部分时间里,它们是企业级分析的基准。 不再。 MinIO 已在多个基准测试中证明它比 Hadoop 快得多。 这意味着在 Spark、Presto、Flink 和其他现代分析工作负载上有更好的性能。

实施方案

说明:此次教程针对于cdh 6.3.2

首先找到hadoop自带的对象存储依赖包,查看其是否已经引用到hadoop中:

image-20230319161922542

然后再hadoop的框架的依赖包下查看是否有连接,如果没有自行创建连接:

image-20230319163237563

在hadoop中添加对象存储的配置:

image-20230319163629236

image-20230319163557254

重启hadoop集群即可看到我们配置的对象存储路径下的文件了:

bin/hdfs dfs -mkdir s3a://datastore/test
bin/hdfs dfs -ls s3a://datastore/