加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_运城站长网 (https://www.0359zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数据生态系统最底层的数据存储

发布时间:2022-11-16 12:32:07 所属栏目:大数据 来源:
导读:  大数据计算发展至今,已经形成了一个百花齐放的大数据生态,通用计算、定制开发,批量处理、实时计算,关系查询、图遍历以及机器学习等等,我们都可以找到各种对应的计算引擎来协助我们处理这些任务。本系列文章
  大数据计算发展至今,已经形成了一个百花齐放的大数据生态,通用计算、定制开发,批量处理、实时计算,关系查询、图遍历以及机器学习等等,我们都可以找到各种对应的计算引擎来协助我们处理这些任务。本系列文章拟以大数据平台从低到高的层次为主线,梳理整个大数据计算生态组件及其功能。
 
  大数据计算生态的系列文章,拟包含的系列文章有:《大数据计算生态之数据存储》《大数据计算生态之数据计算》《大数据计算生态之数据交互》《大数据计算生态之计算调度》以及《大数据计算生态之数据工具》,该系列文章将从底层存储到顶层交互的各个组件进行讲解,帮助大家厘清大数据体系,丰富大数据知识。
 
  大数据计算生态(如上图)最上层为应用层,也就是实际与开发人员交互的层,例如分析人员只需要在应用层的Hive中写SQL即可,具体的任务分配和运行交给Hive来调用中间层的MapReduce引擎来进行处理。Spark的GraphX、MLlib等组件可以用来进行图分析和机器学习等。中间层的Spark、Flink等作为核心计算引擎提供批计算和流计算支持。左边ZK和Oozie是任务配置协调,右边的是日志采集、迁移或者获取数据相关的组件大数据数据存储,再向下是资源调度管理系统,最底层是数据存储,一个大数据平台就要提供能进行多模型数据存储的能力,比如除了最常见的关系数据,还有时序、文档、键值和图等数据。
 
  有些组件所处的层次其实还值得继续讨论,例如ElasTIcSearch其实也是一个存储组件,Hbase在作为存储组件的时候其实也作为查询计算组件使用,Flink也可以放到最上层,作为开发人员直接交互的组件。但整体来讲,整个大数据生态大概就是如此,大数据生态组件之间本就是相互拼接来完成特定功能。本文来具体介绍最底层的数据存储。
 
  存储层
 
  存储层负责进行大数据平台的数据存储。过去的几十年,数据大部分以结构化的形式存储在关系数据库中,常见的如Oracle和MySQL两种。随着数据越来越多样,出现了各种类型的数据库,如图数据库、键值数据库、时序数据库、文档数据库等,以及除了传统的行存数据库外,也出现了列存数据库或者文件格式。
 
  1.HDFS(分布式文件系统)
 
  HDFS 是 Hadoop Distribute File System,Hadoop分布式文件系统的简称。这个文件系统是一个适用于大的数据集的支持高吞吐和高容错的运行在通用(廉价)机上的分布式文件系统。
 
  HDFS 是一个主从架构的服务。一个 HDFS 集群包括一个 NameNode 节点、一个 SecondaryNameNode 节点(非必须)和多个 DataNode 节点。
 
  大数据存储难点_大数据数据存储_大数据存储解决方案
  
  - NameNode管理着Metadata(元数据)
 
  - 客户端Client对元数据的操作是指向NameNode,对用户数据的读写是通过DataNode;
 
  - NameNode向DataNode发送Block的操作命令
 
  - 一块的副本被存储在不同的机架中
 
  关系数据存储(行存储)
 
  传统的数据库例如MySQL,Oracle等关系数据库,都采用的是行存储引擎,在基于行式存储的数据库中, 数据是按照行数据为基础逻辑存储单元进行存储的, 一行中的数据在存储介质中以连续存储形式存在。
 
  列存储
 
  列式存储(Column-based)是相对于行式存储来说的,新兴的 Hbase、HP VerTIca、EMC Greenplum 等分布式数据库均采用列式存储。在基于列式存储的数据库中, 数据是按照列为基础的逻辑存储单元进行存储的,一列中的数据在存储介质中以连续存储形式存在。
 
  从上图可以很清楚地看到,行式存储下一张表的数据都是放在一起的,但列式存储下都被分开保存了。所以它们就有了如下这些优缺点:
 
  大数据存储解决方案_大数据存储难点_大数据数据存储
 
  对于传统的数据存储来讲,无论是行存还是列存,它们的存取策略都基本是一致的,整体分为两大类操作(读操作和写操作),如上图所示,读写策略可以大概总结为如下的步骤:
 
  大数据数据存储_大数据存储难点_大数据存储解决方案
 
  针对这样的读写逻辑,就有了针对存储层在不同存取阶段的优化方案。
 
  多模型存储
 
  随着数据多样性的发展,多种类型的数据大量涌出,相对应的NoSQL系统也出现了。例如Neo4j图存储,用来存储社交网络、知识图谱等图数据;再入近两年Iot智能制造的兴起,大量工业生产生活中的时序数据,也对应出现了InfluxDB这种存储时序数据的系统;还有生产中常用的键值数据库Redis等。
 

(编辑:开发网_运城站长网)

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