人类通过大数据(数字化的知识与信息)的识别一选择—过滤—存储—使用,引导、实现资源的快速优化配置与再生,实现经济高质量发展的经济形态。
企业开始进行数字化转型,将传统的业务流程进行数字化改造。
改造的目的降低成本、进行资源精准配置、提升效率、增加附加值(数字资产)。整合企业内外部数据,以数据来支撑精细化运营。
磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。
早期计算机使用的磁盘是软磁盘( Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk ,简称硬盘)
硬盘(Hard Disk Drive )是计算机的主要存储硬件,可以用来存储数据。目前(2020年),市面上比较流行的硬盘多数是TB级的。
机械硬盘( HDD )、固态硬盘( SSD )、混合硬盘(SSHD )
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,并在存储性能上、容错上会有一定地提升。RAID是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。
DAS存储架构也称为直连式存储(Direct-Attached Storage ),存储设备是通过电缆(通常是SCSI接口电缆)直接挂到服务器总线上。DAS比较依赖操作系统来进行IO操作。
NAS也称为网络接入存储(Network-Attached Storage ),存储设备通过标准的网络拓扑结构(例如以太网)连接,采用NS较多的功能是用来文档共享、图片共享、电影共享等等,而且随着云计算的发展,一些NAS厂商也推出了云存储功能,大大方便了企业和个人用户的使用。
SAN存储区域网络存储
SAN ( Storage Area Network )是一种高速的、专门用于存储操作的网络,通常独立于计算机局域网(LAN )。SAN将主机和存储设备连接在一起,能够为其上的任意一台主机和任意一台存储设备提供专用的通信通道。
SAN将存储设备从服务器中独立出来,实现了服务器层次上的存储资源共享。
是一种存储和组织数据的方法,它使得对文件访问和查找变得容易
使用文件和树形目录的抽象逻辑概念代替了硬盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据底层存在硬盘哪里,只需要记住这个文件的所属目录和文件名。
文件系统通常使用硬盘和光盘这样的存储设备,并维护文件在设备中的物理位置。
DOS操作系统中文件名由文件主名和扩展名组成,之间以一个小圆点隔开
文件名可用于用于定位存储位置、区分不同文件,计算机实行按名存取的操作方式
某些符合因有其特殊含义,一般不允许出现在文件名中
同一级中不可出现相同的文件名
元数据(metadata )又称之为解释性数据,记录数据的数据
文件系统元数据一般指文件大小、最后修改时间、底层存储位置、属性、所属用户、权限等信息
传统做法是在单机存储。但是随着数据变多,会遇到存储瓶颈。
单机纵向扩展︰内存不够加内存,磁盘不够加磁盘。有上限限制,不能无限制加下去。
多机横向扩展∶采用多台机器存储,一台不够就加机器。理论上可以无限。
多台机器存储也就意味着迈入了分布式存储。
借助于元数据记录来解决这个问题。把文件和其存储的机器的位置信息记录下来,类似于图书馆查阅图书系统,这样就可以快速定位文件存储在哪一台机器上了。
使用分块存储︰把大文件拆分成若干个小块( block 简写blk ),分别存储在不同机器上,并行操作提高效率。
此外分块存储还可以解决数据存储负载均衡问题。此时元数据记录信息也应该更加详细︰文件分了几块,分别位于哪些机器上。
机器、磁盘等硬件出现故障是难以避免的事情,如何保证数据存储的安全性。如果某台机器故障,数据块丢失,对于文件来说整体就是不完整的。冗余存储是个不错的选择。采用副本机制。副本越多,数据越安全,当然冗余也会越多。通过"不要把鸡蛋放在一个篮子里”的思想,可以把数据丢失的风险分散到各个机器上。
随着存储的进行,数据文件越来越多,与之对应元数据信息也越来越多,如何让用户视觉层面感觉不到元数据的凌乱,同时也与传统的文件系统操作体验保持一致?传统的文件系统拥有所谓的目录树结构,带有层次感的namespace (命名空间),因此可以把分布式文件系统的元数据记录这一块也抽象成统一的目录树结构。
HDFS(Hadoop Distributed File System ),意为:Hadoop分布式文件系统。是Apache Hadoop核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在。
分布式文件系统解决大数据如何存储问题。分布式意味着是横跨在多台计算机上的存储系统。
HDFS是一种能够在普通硬件上运行的分布式文件系统,它是高度容错的,适应于具有大数据集的应用程序,它非常适于存储大型数据(比如TB和PB)。
HDFS使用多台计算机存储文件,并且提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统。
硬件故障(Hardware Failure )是常态,HDFS可能有成百上千的服务器组成,每一个组件都有可能出现故障。因此故障检测和自动快速恢复是HDFS的核心架构目标。
HDFS上的应用主要是以流式读取数据(Streaming Data Access )。HDFS被设计成用于批处理,而个是用尸父旦式的。相较于数据访问的反应时间,更注重数据访问的高吞吐量。
典型的HDFS文件大小是GB到TB的级别。所以,HDFS被调整成支持大文件( Large Data Sets)。它应该提供很高的聚合数据带宽,一个集群中支持数百个节点,一个集群中还应该支持千万级别的文件。
大部分HDFS应用对文件要求的是write-one-read-many访问模型。一个文件一旦创建、写入、关闭之后就不需要修改了。这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能。
移动计算的代价比之移动数据的代价低。一个应用请求的计算,离它操作的数据越近就越高效。将计算移动到数据附近,比之将数据移动到应用所在显然更好。
HDFS采用master/slave架构。一般一个HDFS集群是有一个Namenode和一定数目的Datanode组成。Namenode是HDFS主节点,Datanode是HDFS从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。
HDFS中的文件在物理上是分块存储( block )的,块的大小可以通过配置参数来规定,参数位于hdfs-default.xml中: dfs. blocksize。默认大小是128M
文件的所有block都会有副本。每个文件的block大小 ( df’s.blocksize )和副本系数(dfs.repl1cation ) 日足中凯置的。副本系数可以在文件创建的时候指定,也可以在之后通过命令改变
默认dfs.replication的值是3,也就是会额外再复制2份,连同本身总共3份副本。
HDPS支持传统的层次型文件组织结构。用户可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似︰用户可以创建、删除、移动或重命名文件。
Namenode负责维护文件系统的namespace名称空间,任何对文件系统名称空间或属性的修改都将被Namenode记录下来。
HDFS会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如: hdfs://namenode:port/dir-a/dir-b/dir-c/file. data
在HDFS中,Namenode管理的元数据具有两种类型
文件名称、权限,修改时间,文件大小,复制因子,数据块大小
记录文件块和DataNode之间的映射信息,即哪个块位于哪个节点上