大数据存储与管理(一)|学习笔记

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 快速学习大数据存储与管理(一)

开发者学堂课程【高校精品课-北京理工大学-大数据技术导论:大数据存储与管理(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/857/detail/15613


大数据存储与管理(一)

 

内容介绍:

一、引言

二、分布式文件系统 HDFS

三、主流分布式文件系统

四、HDFS 简介

五、HDFS 的体系结构

六、小结

 

一、引言

1.存储与管理是始终贯穿处理过程始终

介绍大数据存储与管理的内容,前面的章节中了解到大数据处理的大致的流程。最原始的数据源经过数据的采集、数据存储、数据分析与数据处理到最终结果的可视化,形成报表或图表的形式,输出到用户的终端。

图片180.png

在整个大数据处理的过程中,存储与管理是始终贯穿其中的,无论是新采集的原始的数据源还是处理的数据源,中间产生的临时结果,亦或是处理最后产生的最终结果,都需要一个强大的高效的存储与管理作为支撑。

2.传统的关系型数据库难以应对大数据挑战

传统的关系型数据库在很长的一段时间内都占据着数据存储与管理的一个市场上主流的地位。在面对很多大数据应用时,传统的关系型数据库就显得有些力不从心。大数据的一个显著的三维特征是 data volume data veiocity和data variety。

图片179.png

大数据的数据量非常的大,同时要求对数据做以实时的、快速的处理,同时数据的种类也多种多样,非常的繁杂。传统的关系型数据库在使用时首先对数据做一个结构上的预先定义,处理很多大数据应用时是不可实现的,同时,传统的关系型数据库,在可扩展性方面也有一定的局限性,难以处理大量的数据。在这一章节中,学习到面对大数据的这些挑战,如何用一些新兴的技术手段来处理这些问题。分布式文件系统,分布式数据库以及非关系型数据库。

 

二、分布式文件系统 HDFS

首先来看分布式文件系统,分布式文件系统的基本概念,会以主流文件系统 HDFS 为例来介绍分布式文件系统的一个设计理念和存储原理。

在介绍分布式文件系统之前,先来看一下计算机集群的一个基本架构。

图片178.png

这张图显示的是一个高度抽象的计算机集群的基本架构,在一个计算机集群中,有成百上千、成千上万的计算节点,这些计算节点被部署在不同的基架上,通过网络互相连接起来。

1. 分布式文件系统 distributed file system,简称 DFS 就是指文件系统管理的物理存储资源,不仅仅存储在本地节点上,还可以通过网络连接存储在非本地节点上。,在这样一个计算机集群里面,文件可以分布式的存储在不同的节点上。

2.分布式的文件系统优势

相比较于本地的文件系统,分布式的文件系统改变了数据存储和管理的方式,通过网络互相连接起来。比较于本地的文件系统,分布式的文件系统改变了数据存储和管理的方式。它有以下优势。首先,它降低了成本,不再需要去购买非常昂贵的存储服务器,可以利用廉价的计算设备来构建一个小型的计算机集群来实现分布式的数据存储,同时它非常容易扩展,需要更多的存储资源的时候,可以简单的向集群中。加入新的硬件设备来实现水平的扩容,它还有强可靠和高可用的特性。通常在分布式的文件系统里面会采用冗余机制,系统会自动的对数据做一个自动的备份,当有一些数据出现错误或丢失的时候。仍然有其他的一部分数据可供用户使用,在用户的这个角度来讲,用户不需要关心数据究竟是存在哪一个计算节点上。可以像使用本地文件系统一样访问分布式的文件系统,所以说对用户来说是很友好的。

3.评价分布式文件系统三个因素

去评价一个分布式文件系统的时候,通常会考虑以下三个因素,首先看数据的存储方式。也就是文件在各个节点之间的分布策略,以保证数据的存储安全和方便获取,其次是数据的读取速率,包括响应用户读取数据文件的请求、定位数据文件所在的节点、读取实际硬盘中数据文件的时间、不同节点间的数据传输时间以及一部分处理器的处理时间等。最后,也是非常重要的,是数据的安全机制。由于数据分散,在各个节点中,必须要采取冗余、备份、镜像等方式来保证节点出现故障的情况下,仍然可以对外提供数据服务,能够进行数据的快速恢复来确保数据的安全。

 

三、主流分布式文件系统

当前主流的分布式文件系统,包括 GFS,也就是Google 的 file system,是 Google 公司为了满足本公司的需求而开发的。基于 Linux 的专有分布式文件系统

HDFS,也就是 hadoop 的分布式文件系统。hadoop 分布式文件系统是 hadoop 生态圈非常重要的组成部分.

Ceph 开源分布式存储项目

luster 是由 sun 公司开发和维护的具有高可用性的集群文文件系统。TFS 淘宝的 file system,它是面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,为淘宝提供了海量小文件的存储。

 

四、HDFS 简介

1. hadoop 分布式文件系统 HDFS 是 hadoop 的整个生态圈里面。非常重要的一个基础组件,它为很多hadoop生态圈里面的系统提供了一个底层的存储支持。hadoop 是阿帕奇软件基金会旗下的开源分布式的计算平台,为用户提供了系统底层、细节透明的分布式基础架构。用户在不需要了解分布式系统底层细节的情况下,仍然可以开发分布式的应用程序,充分的利用计算机集群的一个强大的计算能力来实现海量数据的分布式存储与管理。

图片177.png

2. hadoop 框架里面最核心的设计就是 HDFS 和 mapreduce。HDFS 为海量数据提供了存储支持,mapreduce 则为海量数据提供了计算框架。

3. HDFS 是专门为解决大数据存储问题而产生的,有以下几个特点,首先,它向下兼容廉价的硬件设备。在设计之初,HDFS 就把硬件故障看作常态来进行设计。HDFS 中,通过增加数据副本、冗余存储等机制来保证数据的可靠性、安全性和高可用性。

HDFS 中采用流式数据访问的模式,而非随机读写,这是为了满足大批量数据的读写要求,提高整个系统的吞吐量。

HDFS 非常适合存储和管理。超大文件。在 HDFS 中,把数据文件分成大小相同的数据块儿,Data block,以块儿作为基本的存储单位进行管理。默认一个数据块儿的大小是64兆或128兆

在 HDFS 中采用简单的文件模型。适合一次写入,多次读取的情况,文件一旦被写入关闭之后就不允许用户再进行修改,同时它降低了并发控制的要求,也是为了支持系统更高的吞吐量。

HDFS 有非常强大的跨平台兼容性,因为 HDFS 是基于 Java 开发的,Java 有很好的跨平台性,这也是HDFS可以广泛的用作大量应用的首选平台的原因


五、HDFS 的体系结构

1. HDFS 中采用主从结构模型 Master/ slave 的结构,在一个 HDFS 集群中通常有一个名称节点 Name not和多个数据节点 data note 组成。在这个示意图中,图片176.png

 

有一个 name note 和五个 data note 组成 data note 分布在了不同的机架上。

2. 在 HDFS 中它会把文件数据分割成若干的数据块来进行管理,每个 data note 存储一部分的数据块,这样文件就分布式的存储在了整个 HDFS。的集群中,这个示意图中可以看到,

 图片175.png

绿色的小方块代表 data block 应用程序,客户端可以并行的对这些数据进行访问,极大的提高了访问速度。

在 HDFS 集群中两类节点,一类是名称节点 name node 主要是整个集群的一个管理者负责整个分布式文件系统,原数据的管理,也就是存储的文件路径名、数据块的 ID 以及存储的位置信息。data node 是具体负责存储文件的地方,负责文件数据的存储和读写,在 name node 的统一调度下进行数据块的创建、删除和复制等操作,并周期性的向name node 报告自己的状态。没有按时报告的数据节点会被标记为宕机,之后 name node 就不会再给它分配读写请求。

冗余数据存储

3. HDFS 中冗余数据存储的机制。为了保证系统的容错性和可用性,HDFS 中采用了多副本方式对数据进行冗余存储。通常一个数据块的多副本会被分布到不同的数据节点,

图片174.png

在这张示意图中,在 name not 中存储了文件名、副本数量以及 block ID 这样的信息我们可以看到,PART0这个文件被分成了 BLOCK1和 BLOCK3,每 个 block 都被冗余存储了两份。PART1文件被分成了 block245个block,每个block都被冗余存储了三份,我们可以看到在下面的数据节点中。BLOCK1被分布式的存储在了 date note0和 date note2上,同样第二个数据文件 BLOCK2被分布式的存储在了 NOTE0NOTE1和 NOTE3上,这样的冗余数据存储机制可以更快的进行数据的传输。同时更容易的检查数据的错误,保证数据的可靠性。

4. HDFS 中数据的读写过程

首先是数据的读过程,客户端通过open函数来打开一个文件,在 HDFS 中一个数据文件被分成了多个数据块儿,每个数据块儿又被分布式的存储在了多个数据节点上,信息是存储在 name note 上的,所以首先需要远程调用name note。去拿到这个文件存储在了哪些数据节点中。拿到数据块存储的位置信息之后,客户端就可以去访问这些数据节点,来顺序的读取每个数据块的内容,在 HDFS 中每个数据块会被冗余存储,默认的一个数据块会被存储三份,在HDFS 中采用就近原则,也就是会优先去读取离最近的数据块的内容。

图片173.png

当我们要写一个文件的时候。首先通过 create 函数来创建这个文件。创建过程需要在 name node 节点中,在 name no 的管理的命名空间创建这个文件。在创建之前,Name node 会首先做一些检查,例如说这个文件是否存在,客户端是否有权限进行写文件,检查之后在 name name node 中创建了文件的信息。之后就开始写数据了,把代写的数据存在 data q 里面,Data streamer 去读取 data q 里面的内容,同时需要 name node 帮分配文件,具体要存储在哪些数据节点上。

在 HDFS 中需要对数据进行冗余的备份,默认需要备份三份。在这个事例中,Name node 分配了三个数据节点供我们存储数据,这三个数据节点形成了一个Data note pipeline,接下来会进行一个叫做流水线复制的写过程。也就是说,客户端将要写的数据首先写入第一个数据节点,第一个数据节点将收到的数据传到第二个数据节点,第二个数据节点依次去写第三个数据节点。

当写完成的时候会发一个确认包,第三个数据节点发确认包给第二个数据节点,第二个数据节点发回给第一个数据节点,第一个数据节点发回给客户端,这样就完成了第一个数据包的写入,依次去写 dataQ 里面剩下的数据。当整个数据写过程完成后,关闭文件,结束整个写过程。

HDFS 操作的常用命令

可以参考 hadoop 官网的 file system shell 说明文档,去学习如何在 HDFS 中创建文件路径,如何去打印文件目录,如何从本地文件上传文件到 HDFS 中,如何从 HDFS 中下载文件到本地以及如何去显示文件。移动文件、拷贝文件等等。

 

六、小结

分布式文件系统是大数据时代,解决大规模数据存储问题的有效手段。在这一小节中,介绍了分布式文件系统的基本概念,并以主流文件系统 HDFS 为例,进一步的介绍了分布式文件系统的基本架构、设计思想和数据的读写方法。

了解了 HDFS 采用主从的结构模型,通常在集群中有一个名称节点和若干个数据节点。HDFS 采用了冗余数据存储的机制,保证了系统的容错性和可用性。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
存储 算法 数据挖掘
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
本文介绍了2023年中国高校大数据挑战赛赛题B的Python实现方法,该赛题涉及DNA存储技术中的序列聚类与比对问题,包括错误率分析、序列聚类、拷贝数分布图的绘制以及比对模型的开发。
42 1
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
|
29天前
|
存储 缓存 NoSQL
深入解析Memcached:内部机制、存储结构及在大数据中的应用
深入解析Memcached:内部机制、存储结构及在大数据中的应用
|
28天前
|
存储 分布式计算 算法
"揭秘!MapReduce如何玩转压缩文件,让大数据处理秒变‘瘦身达人’,效率飙升,存储不再是烦恼!"
【8月更文挑战第17天】MapReduce作为Hadoop的核心组件,在处理大规模数据集时展现出卓越效能。通过压缩技术减少I/O操作和网络传输的数据量,不仅提升数据处理速度,还节省存储空间。支持Gzip等多种压缩算法,可根据需求选择。示例代码展示了如何配置Map输出压缩,并使用GzipCodec进行压缩。尽管压缩带来CPU负担,但在多数情况下收益大于成本,特别是Hadoop能够自动处理压缩文件,简化开发流程。
27 0
|
2月前
|
存储 XML JSON
Bond——大数据时代的数据交换和存储格式
【7月更文挑战第12天】Bond是微软开源的可扩展数据格式化框架,适用于服务间通信等场景。它使用IDL定义数据结构,并具备高效性能及良好的版本控制能力。通过描述消息格式并生成代码,Bond简化了多语言间的数据交换,相较于XML和JSON,在效率和支持快速开发方面更具优势。实际应用时需根据需求选择合适的数据交换格式。
|
2月前
|
存储 NoSQL 大数据
大数据存储:HBase与Cassandra的对比
【7月更文挑战第16天】HBase和Cassandra作为两种流行的分布式NoSQL数据库,在数据模型、一致性模型、数据分布、查询语言和性能等方面各有千秋。HBase适用于需要强一致性和与Hadoop生态系统集成的场景,如大规模数据处理和分析。而Cassandra则更适合需要高可用性和灵活查询能力的场景,如分布式计算、云计算和大数据应用等。在实际应用中,选择哪种数据库取决于具体的需求和场景。希望本文的对比分析能够帮助读者更好地理解这两种数据库,并做出明智的选择。
|
2月前
|
存储 Java 分布式数据库
使用Spring Boot和HBase实现大数据存储
使用Spring Boot和HBase实现大数据存储
|
2月前
|
存储 弹性计算 大数据
阿里云ECS以其强大的弹性计算与存储能力,为大数据处理提供了灵活、高效、成本优化的解决方案
阿里云ECS在大数据处理中发挥关键作用,提供多样化实例规格适应不同需求,如大数据型实例适合离线计算。ECS与OSS集成实现大规模存储,通过Auto Scaling动态调整资源,确保高效运算。案例显示,使用ECS处理TB级数据,速度提升3倍,成本降低40%,展现其在弹性、效率和成本优化方面的优势。结合阿里云生态系统,ECS助力企业数据驱动创新。
54 1
|
3月前
|
存储 SQL 分布式计算
MaxCompute产品使用问题之如何查看项目空间耗用的存储大小
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
2月前
|
机器学习/深度学习 分布式计算 大数据
MaxCompute产品使用合集之如何查看空间资源、CPU和内存以及存储空间容量
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
3月前
|
存储 机器学习/深度学习 分布式计算
MaxCompute产品使用问题之如何使用分层存储
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。