阿里云文件存储HDFS(公测)(hdfs数据储存)
本文目录一览:
hdfs的特点有哪些
hdfs的特点
一、hdfs的优点
1.支持海量数据的存储:一般来说,HDFS存储的文件可以支持TB和PB级别的数据。
2.检测和快速应对硬件故障:在集群环境中,硬件故障是常见性问题。因为有上千台服务器连在一起,故障率很高,因此故障检测和自动恢复hdfs文件系统的一个设计目标。假设某一个datanode挂掉之后,因为数据是有备份的,还可以从其他节点里找到。namenode通过心跳机制来检测datanode是否还存活。
3.流式数据访问:(HDFS不能做到低延迟的数据访问,但是HDFS的吞吐量大)=》Hadoop适用于处理离线数据,不适合处理实时数据。HDFS的数据处理规模比较大,应用一次需要大量的数据,同时这些应用一般都是批量处理,而不是用户交互式处理。应用程序能以流的形式访问数据库。主要的是数据的吞吐量,而不是访问速度。访问速度最终是要受制于网络和磁盘的速度,机器节点再多,也不能突破物理的局限。
4.简化的一致性模型:对于外部使用用户,不需要了解hadoop底层细节,比如文件的切块,文件的存储,节点的管理。一个文件存储在HDFS上后,适合一次写入,多次读取的场景。因为存储在HDFS上的文件都是超大文件,当上传完这个文件到hadoop集群后,会进行文件切块,分发,复制等操作。如果文件被修改,会导致重新触发这个过程,而这个过程耗时是最长的。所以在hadoop里,2.0版本允许数据的追加,单不允许数据的修改。
5.高容错性:数据自动保存多个副本,副本丢失后自动恢复。可构建在廉价的机器上,实现线性扩展。当集群增加新节点之后,namenode也可以感知,将数据分发和备份到相应的节点上。
6.商用硬件:Hadoop并不需要运行在昂贵且高可靠的硬件上。它是设计运行在商用硬件(在各种零售店都能买到的普通硬件)的集群上的,因此至少对于庞大的集群来说,节点故障的几率还是非常高的。HDFS遇到上述故障时,被设计成能够继续运行且不让用户察觉到明显的中断。
二、HDFS缺点(局限性)
1、不能做到低延迟数据访问:由于hadoop针对高数据吞吐量做了优化,牺牲了获取数据的延迟,所以对于低延迟数据访问,不适合hadoop。对于低延迟的访问需求,HBase是更好的选择。
2、不适合大量的小文件存储 :由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量。根据经验,每个文件、目录和数据块的存储信息大约占150字节。因此,如果有一百万个小文件,每个小文件都会占一个数据块,那至少需要300MB内存。如果是上亿级别的,就会超出当前硬件的能力。
3、修改文件:对于上传到HDFS上的文件,不支持修改文件。Hadoop2.0虽然支持了文件的追加功能,但是还是不建议对HDFS上的文件进行修改。因为效率低下。HDFS适合一次写入,然后多次读取的场景。
4、不支持用户的并行写:同一时间内,只能有一个用户执行写操作。
阿里云宣布:即将正式开启阿里云网盘公测
阿里云在2020年11月份发放部分阿里云网盘的邀请码,相信很多小伙伴们都激活了吧!
近期官网宣布:即将正式开启阿里云网盘公测,支持网页版、手机端、微信小程序、桌面端PCMac、平板设备端等多平台同步使用
至于具体公测时间我还未曾看见,不过说实话,内测期间那下载速度的确是杠杠的!
毕竟百度网盘普通会员也就300KB之类的龟速下载速度,而阿里云普通会员文件 下砸 速度飙到了10Mb/s的速度!
据了解这次阿里云盘还融入了更多开放性功能:网盘支持未登录状态下,发送和分享和下载文件即便不登录账户,不登录账户双方之间也可以直接预览或者下载对方发送给你的各类文件,同时阿里云盘支持网页版,手机端,微信小程序,桌面端PCMac,平板设备端等多平台同步使用。
HDFS的基本概念和体系结构
NameNode是Apache Hadoop HDFS体系结构中的主节点,用于维护和管理DataNode(从节点)上存在的块。NameNode是一个非常高可用性的服务器,用于管理文件系统命名空间并控制客户端对文件的访问。HDFS体系结构的构建方式使用户数据永远不会驻留在NameNode上。数据仅驻留在DataNodes上。
Functions of NameNode:
第二名称节点(Secondary NameNode,SNN)是用于定期合并命名空间镜像和镜像编辑日志的辅助守护进程。和名称节点一样,每个集群都有一个第二名称节点,在大规模部署的集群条件下,一般第二名称节点也独自占用一台服务器。
除了这两个守护进程之外,还有第三个守护进程或称为辅助NameNode的进程。辅助NameNode作为辅助守护进程与主NameNode并发工作。不要混淆次要的NameNode是备份的NameNode,因为它不是。
Functions of Secondary NameNode:
新的FsImage被复制回NameNode,下一次启动NameNode时将使用该FsImage)
Hence, Secondary NameNode performs regular checkpoints in HDFS. Therefore, it is also called CheckpointNode(因此,辅助NameNode在HDFS中执行常规检查点。因此,它也称为CheckpointNode。)
Functions of DataNode:
到现在为止,你一定已经意识到NameNode对我们来说非常重要。如果失败了,我们就完了。但是不要担心,我们将在下一篇Apache Hadoop HDFS架构博客中讨论Hadoop如何解决这个单点故障问题。
block不过是硬盘上存储数据的最小连续位置。通常,在任何文件系统中,您都将数据存储为块的集合。类似地,HDFS将每个文件存储为块,这些块分散在整个Apache Hadoop集群中。在Apache Hadoop 2.x中,每个块的默认大小是128 MB(在Apache Hadoop 1.x中是64 MB),您可以根据需要进行配置。
在HDFS中,不必将每个文件都以配置的块大小的精确倍数存储(128 MB,256 MB等)。让我们举一个例子,我有一个大小为514 MB的文件“ example.txt”,如上图所示。假设我们使用的默认块大小配置为128 MB。那么,将创建多少个块?5个:前四个块的大小为128 MB。但是,最后一个块的大小仅为2 MB。
现在,你一定在想为什么我们需要这么大的块大小,即128兆字节?
每当我们谈到HDFS,我们就谈到巨大的数据集,即兆兆字节和千兆字节的数据。因此,如果我们有一个比如4 KB的块大小,就像在Linux文件系统中一样,我们会有太多的块,因此会有太多的元数据。因此,管理这些数量的块和元数据会产生巨大的开销,这是我们不想要的
HDFS提供了一种以数据块的形式在分布式环境中存储大量数据的可靠方法。还复制这些块以提供容错能力。默认的复制因子是3,这也是可配置的。因此,如下图所示,每个块复制三次并存储在不同的datanode上(考虑默认的复制因子)
NameNode定期从DataNode收集阻止报告以维护复制因子。因此,每当块被过度复制或复制不足时,NameNode都会根据需要删除或添加副本。
同样,NameNode还确保所有副本都不存储在同一机架或单个机架中。它遵循内置的机架感知算法,以减少延迟并提供容错能力。考虑到复制因子为3,机架感知算法表示,一个块的第一个副本将存储在本地机架上,接下来的两个副本将存储在不同的(远程)机架上。下面就是实际的Hadoop生产集群的外观。在这里,可以装多个有DataNodes的机架。
Advantages of Rack Awareness:
So, now you will be thinking why do we need a Rack Awareness algorithm? The reasons are:
发表评论
暂时没有评论,来抢沙发吧~