景安微信
关注微信
随时查询备案
景安网络 欢迎来到景安网络虚拟主机资讯站!
免费主机国内主机
国内主机
0元购买
原价99元/年 我想领取
QQ群
快云体验交流群

群名称:快云体验群

群   号:288544772

一键加群 快云体验交流群
公众号
快云官方微信

扫码关注公众号您可以:

1、微信一键登录会员;

2、微信提交故障工单;

3、微信查询网站备案。

回顶部
1元vps

首页 > 常见问题 > Hadoop学习之路 --- HDFS(分布式文件系统)|景安

Hadoop学习之路 --- HDFS(分布式文件系统)|景安

来源:景安网络

作者:景安老墨

更新时间:2018-10-15 10:27

景安网络—专业的数据中心服务商!提供快云服务器,快云VPS,虚拟主机,域名注册,服务器托管,服务器租用,SSL证书,数据库存储。 10M独享主机,一元拼单! 立即注册

Hadoop自带一个称为HDFS的分布式文件系统,即Hadoop Distributed Filesystem,HDFS是以流式数据访问模式来存储超大文件,运行于商用硬件集群上。
 
                                                                                                                                                              ----<<Hadoop权威指南>>
 
名词解释:
 
什么是HDFS:
一个用于分布式环境下的文件系统,与正常文件系统不同的是,它会让集群中的每个机器仿佛访问同一个文件系统,即在A机器写入HDFS的文件,在B机器也能看到,在B机器删除HDFS文件,集群其他机器中的该文件也会被删除。
 
什么是流式数据访问:
流式数据,特点就是,像流水一样,不是一次过来而是一点一点“流”过来。而你处理流式数据也是一点一点处理。如果是全部收到数据以后再处理,那么延迟会很大,而且在很多场合会消耗大量内存。
 
什么是商用硬件:
在零售店就能买到的一般硬件,及一般企业可简单获取到的硬件,HDFS可以运行与商业硬件上,说明对硬件要求不高 ,具有普及性。
 
什么是元数据:
元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据。
 
什么是HDFS数据块:
每个磁盘有默认的数据块,这是磁盘读写的最小单位。文件系统的块大小一般为磁盘块的整数倍。磁盘块大小一般为 512 字节。
 
HDFS 文件系统也有块(block)的概念,默认值为 128M,也可以修改。超过块大小的文件在存储的时候会被分为多个分块(chunk)。
 
有点需要注意:HDFS 中小于一个块大小的文件不会占据整个块的空间,而单一磁盘中如果文件小于块大小,那么整个磁盘块的空间都会被占用。
 
(简单来说,如果分出来的块大小小于128M,不小于512字节的内容,则占据它对应的大小的磁盘空间,而如果大小小于512字节的内容,则占据512字节大小的磁盘空间,不是很准确,大概这个意思)
 
 
 
首先是HDFS的几个比较大的特点:
 
1.超大文件:
 
HDFS适合存储,读取超大的文件,它会将文件分为一个个的数据块,并分别存放在集群上的不同机器中,并进行备份以确保数据安全性,即通过使用多个硬件资源的方式实现超大文件的安全存储。
 
 
 
2.流式访问:
 
HDFS的设计建立在更多地响应"一次写入、多次读写"任务的基础上。也就是说,我们大部分的时间是花在一次生成数据集后,对数据集的各种分析计算上的,每次分析都将设计该数据集的大部分数据甚至全部数据,因此读取整个数据集的时间延迟比读取某一条记录的时间延迟更重要。
 
 
 
3.商用硬件:
 
HDFS可以运行与商业硬件上,说明对硬件要求不高 ,具有普及性,但是相应的使用的硬件廉价也就代表其故障率会比较高,在大型集群中,节点的故障不可不靠考虑,在设计上,HDFS被设计成当节点故障时,能继续运行且不让用户感觉到明显的中断。
 
 
 
4.高数据吞吐量(不适合低延迟数据访问):
 
HDFS的设计主要是为了超大文件的存储访问处理,在提高数据吞吐量的同时,难免牺牲了相当的数据访问耗时,所以如果需要低延迟的数据访问,HDFS可能就不是很适合了。
 
 
 
5.不适合存储大量小文件:
 
HDFS中有namenode节点,也叫元数据节点,它会存储在 HDFS 文件系统上的数据的元数据,(比如文件系统树及整棵树内所有的文件和目录,每个文件中各个数据块所在数据节点信息,但并不永久保存块的位置信息,因为这块可能随时变化。这部分的信息在系统启动的时候根据数据节点的信息重建。)namenode将这些元数据存储在内存中,所以如果出现存储大量小文件,就会导致namenode中的元数据过大,超出硬件能力。
 
 
 
6.不支持多用户写入及任意修改文件:
 
在HDFS的一个文件中只有一个写入者,而且写操作只能在文件末尾完成,即只能执行追加操作。
 
 
 
HDFS的组成:
 
HDFS由两类节点组成,一类是管理节点(namenode),一类是工作节点(datanode)
 
namenode:
 
namenode 维护 HDFS 文件系统的元数据。管理文件系统及其命名空间,维持整个文件系统树,及整棵树内的所有文件,目录,这些信息以文件形式永久化存储在本地磁盘上:命名空间镜像文件,编辑日志文件,同时为了防止日志越来越大,会周期性将元数据节点的命名空间镜像文件和修改日志合并。同时它也记录着每个文件中各个块所在节点的信息(哪个块在哪个datanode上),但这个信息并不是永久保存,因为这块可能随时变化,而是在每次系统重启时根基数据节点信息重建。如果没有 namenode,文件系统将无法工作,由于文件的元数据都存储在 namenode,如果 namenode 的数据损坏,那么存储在 datanode 上的数据就作废了。
 
datanode:
 
datanode 是 HDFS 文件系统存储具体数据的节点。它们根据 namenode 节点的调度来存储和检索文件的数据块,并将存储的块的列表定期发送给 NameNode 管理节点。
 
SecondaryNameNode:
也叫辅助 NameNode,主要作用就是定期合并编辑日志与命名空间镜像,以防止编辑日志过大。
 
 
 
简单来说,即namenode是保存元数据的,datanode是文件系统中真正存储数据的地方。
 
一般来说,一个集群上会运行多个datanode与一个namenode,可以将datanode当成真正打仗的小兵,namenode当成不亲自动手,而是给小兵发出各种命令的指挥官,小兵可以有很多个,但指挥官只能有一个,不然命令各发各的,岂不是乱套了,而在容错方面,datanode挂了,即小兵死了还有其他小兵,那么namenode挂了,即指挥官死了呢?呢么就由副手担任指挥官,代替其发号施令,即备用namenode开始活动。所以集群中,可以存在多个namenode,但同一时间只能有一个namenode处于activity(活动)状态。

本文链接:http://host.zzidc.com/cjwt/1711.html

关键字:

若无特别注明,文章皆为景安网络原创,转载请注明出处。

10元主机