【云计算与大数据技术】文件存储格式行式、列式、GFS、HDFS的讲解(图文解释 超详细)

简介: 【云计算与大数据技术】文件存储格式行式、列式、GFS、HDFS的讲解(图文解释 超详细)

一、分布式文件系统

文件系统最后都需要以一定的格式存储数据文件,常见的文件存储布局有行式存储、列式存储以及混合式存储三种,不同的类别各有其优缺点和适用的场景,在目前的大数据分析系统中,列式存储和混合式存储方案因其特殊优点被广泛采用

1:行式存储

在传统关系型数据库中,行式存储被主流关系型数据库广泛采用,HDFS文件系统也采用行式存储,在行式存储中,每条记录的各个字段连续的存储在一起,而对于文件中的各个记录也是连续存储在数据块中。

行式存储对于大数据系统的需求已经不能很好的满足,主要体现在以下几个方面

快速访问海量数据的能力被束缚

行的值由响应列的值来定位,这种访问模型会影响快速访问的能力,因为在数据访问的过程中引入了耗时的输入与输出,在行式存储中,为了提高数据处理能力,一般通过分区技术来减少查询过程中数据输入与输出的次数,从而缩短响应时间,但是这种分区技术对海量数据规模下的性能改善效果并不明显

扩展性差

在海量规模下,扩展性差式传统数据存储的一个致命的弱点。一般通过向上扩展和向外扩展来解决数据库扩展的问题。向上扩展是通过升级硬件来提升速度,从而缓解压力,向外扩展则是按照一定的规则将海量数据进行划分,再将原来集中存储的数据分散到不同的数据服务器上,但由于数据被表示成关系模型,从而难以被划分到不同的分片中等原因,这种解决方案仍有有局限性

2:列式存储

列式存储 - 与行式存储布局对应,列式存储布局实际存储数据时按照列队所有记录进行垂直划分,将同一列的内容连续存放在一起

将经常联合使用的列存储在一个数据块中,避免通过不必要的网络传输来获取多列数据,采用列组方式存储布局可以在一定程度上缓解这个问题,也就是将记录的列进行分组,将经常使用的列分为一组,这样即使是按照列式来存储数据,也可以将经常联合使用的列存储在一个数据块中,避免通过不必要的网络传输来获取多列数据,对于某些场景而言会较大的提升系统性能

3:混合式存储

混合式存储- 融合了行式和列式存储布局的优点

首先将记录表按照行进行分组,若干行划分为一组

对于每组内的所有记录,在实际存储时按照列将同一列内容连续存储在一起

二、Google文件系统(GFS)

GFS(Google文件系统)是Google为了存储百亿计的海量网页信息而专门开发的文 件系统

数据冗余备份、故障自动检测、故障机器自动恢复等都列在GFS的设计目标里

GFS中存储的文件绝大多数是大文件

系统中存在大量的“追加”写操作,即在已有文件的末尾追加内容,已经写入的 内容不做更改

对于数据读取操作来说,绝大多数操作都是“顺序”读,少量的操作是“随机” 读  

三、HDFS

Hadoop 分布式文件系统 (HDFS)被设计成适合运行在通用硬件 (commodity hardware)上的分布式文件系统,HDFS是一个高度容错性的系统,适合部署在廉价的机器上,HDFS能够提供高吞吐的数据访问,非常适合大规模数据集上的应用,HDFS在最开始是在Apache Nutch搜索引擎项目的基础架构开发的。HDFS是Apache Hadoop Core项目的一部分

HDFS 采用 master/slave 架构。一个 HDFS 集群由一个namenode 和一定数目的 datanode 组成

HDFS采用Java语言开发,因此任何支持Java的机器都可以部署NameNode或者DataNode,由于采用了可移植性极强的Java语言,使得HDFS可以部署到多种类型的机器上

创作不易 觉得有帮助请点赞关注收藏~~~

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
1334 0
|
存储 分布式计算 Hadoop
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
1158 0
|
存储 大数据 测试技术
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
在大数据环境中,数据存储格式直接影响查询性能和成本。本文探讨了 Parquet、Avro 和 ORC 三种格式在 Google Cloud Platform (GCP) 上的表现。Parquet 和 ORC 作为列式存储格式,在压缩和读取效率方面表现优异,尤其适合分析工作负载;Avro 则适用于需要快速写入和架构演化的场景。通过对不同查询类型(如 SELECT、过滤、聚合和联接)的基准测试,本文提供了在各种使用案例中选择最优存储格式的建议。研究结果显示,Parquet 和 ORC 在读取密集型任务中更高效,而 Avro 更适合写入密集型任务。正确选择存储格式有助于显著降低成本并提升查询性能。
1740 1
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
|
存储 XML JSON
Bond——大数据时代的数据交换和存储格式
【7月更文挑战第12天】Bond是微软开源的可扩展数据格式化框架,适用于服务间通信等场景。它使用IDL定义数据结构,并具备高效性能及良好的版本控制能力。通过描述消息格式并生成代码,Bond简化了多语言间的数据交换,相较于XML和JSON,在效率和支持快速开发方面更具优势。实际应用时需根据需求选择合适的数据交换格式。
431 1
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之在读取OSS遇到格式报错,该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
295 2
|
存储 分布式计算 大数据
MaxCompute产品使用问题之创建了oss外表,格式指定的parquet,然后执行的写入,发现不是标准parquet的格式,该怎么办
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
172 8
|
JSON 分布式计算 DataWorks
MaxCompute产品使用合集之如何将JSON格式数据同步到MongoDB
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
资源调度 大数据 调度
【云计算与大数据技术】集群资源统一管理系统YARN、Mesos、Omega讲解(图文解释 超详细)
【云计算与大数据技术】集群资源统一管理系统YARN、Mesos、Omega讲解(图文解释 超详细)
670 2
|
存储 缓存 分布式计算
【云计算与大数据技术】Spark的解析(图文解释 超详细必看)
【云计算与大数据技术】Spark的解析(图文解释 超详细必看)
852 0