集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > 大数据 >

成都学大数据:HDFS-大数据应用的基石

发布者: 成都达内     浏览次数:     发布时间:2019-04-24 10:50:50

近些年,由于智能手机的迅速普及推动移动互联网技术的蓬勃发展,全球数据呈现爆发式的增长。随着5G技术的商用,未来连接万物的物联网设备必将带来更大量级的数据。大胆预期,我...

  成都学大数据:HDFS-大数据应用的基石

  近些年,由于智能手机的迅速普及推动移动互联网技术的蓬勃发展,全球数据呈现爆发式的增长。2018年5月企鹅号的统计结果:互联网每天新增的数据量达2.5*10^18字节,而全球90%的数据都是在过去的两年间创造出来的。随着5G技术的商用,未来连接万物的物联网设备必将带来更大量级的数据。大胆预期,我们即将走进数据大爆炸的时代。诚如吴军博士所说:谁懂得数据的重要性,谁会在工作中善用数据,就更有可能获得成功。

  从人类活动开始,数据一直不断在产生,区别仅在于数据的存储方式是否取得了进步。从古老的壁画、纸张到现代的硬盘,存储能力跨数量级地增长。尽管如此,在大数据时代,单纯通过增加硬盘个数来扩展计算机文件系统存储容量的方式,在容量大小、容量增长速度、数据备份、数据安全等方面的表现都差强人意。分布式文件存储系统应运而生。

  HDFS主要解决传统方式难以解决或者成本太高的问题,它被设计成适合运行在通用硬件上的分布式文件系统,具有高容错性,适合部署在廉价的机器上运行,能提供高吞吐量的数据访问。

  HDFS可能由成百上千的服务器构成,错误监测、快速自恢复是其核心架构目标。HDFS上的典型文件大小一般在GB至TB量级,适用于一次写入多次读取的场景。相较于数据访问的低延时,HDFS在高吞吐量的表现更优异。

  HDFS采用Java语言编写,典型架构如下图示,使用master/slave架构,一个HDFS集群由一个NameNode和一定数目的DataNodes组成。NameNode是一个中心服务器,负责管理文件系统的名称空间(namespace)以及客户端对文件的访问。集群中的DataNode一般是一个节点一个,负责管理所在节点的数据存储。HDFS向外暴露文件系统的名称空间,用户能以文件形式在上面存储数据。文件在HDFS上以数据块为单位存储,一个文件被分成一个或多个数据块存储在一组DataNode上。DataNode负责处理文件系统客户端的读写请求,在NameNode的统一调度下进行数据块的创建、删除和复制。

  成都学大数据:HDFS-大数据应用的基石

  NameNode的作用

  1. 维护文件系统的名称空间

  执行文件系统名称空间的操作,如创建、删除、移动或重命名文件。任何对文件系统名称空间或属性的修改都会被NameNode记录。

  2. 管理数据块的复制

  为了保证数据安全,HDFS上文件的所有数据块都有副本,文件的数据块大小和副本数目可配置。NameNode管理数据块的复制,周期性地从集群中的每个DataNode接收心跳信息和块状态报告(Blockreport),监测DataNode节点的工作状态和同步该节点的数据块列表。

  3. 管理数据块副本

  用户往HDFS上传数据,只需上传一次,由HDFS自动实现数据的备份。HDFS采用机架感知策略(rack-aware)来改进数据的可靠性、可用性和性能。

  由于网络传输的性能低于本地传输,一般情况HDFS副本系数为3,通过机架感知过程确定DataNode所属的机架id,将第二个副本存放在第一副本同机架的不同节点上,第三副本存放在不同机架的节点上。以此减少机架间的数据传输,提高写操作效率,同时保证数据的可靠性。

  4. 安全模式

  NameNode启动后会进入安全模式,接收所有DataNode的心跳信号和块状态报告,检测数据块的副本数量是否达到最小副本数,确保数据块的安全性。如果一定数量的数据块(比例)确认安全,NameNode退出安全模式。

  5. 元数据(MetaData)持久化

  元数据可分为内存元数据和元数据文件两种。其中NameNode在内存中维护整个文件系统的元数据镜像,用于HDFS的管理;元数据文件则用于持久化存储。元数据有三类重要信息:

  a. 文件和目录自身的属性信息,例如文件名、目录名、父目录信息、文件大小、创建时间、修改时间等。

  b. 记录文件内容存储相关信息,例如文件块情况、副本个数、每个副本所在的Data Node 信息等。

  c. 记录HDFS中所有Data Node信息,用于Data Node管理。

  NameNode使用EditLog的事物日志记录对元数据的修改操作,使用FsImage文件存储文件系统的名称空间(包含数据块到文件的映射、文件的属性等)。NameNode在启动时从硬盘中读取Editlog和FsImage,将所有Editlog中的事物作用在内存中的FsImage上,并将新版本的FsImage保存到本地磁盘,删除旧的Editlog,此过程即为一个检查点(checkpoint)。内存中保存着整个文件系统的名称空间和文件数据块映射(BlockMap)的映像,内存大小通常设置为4G。

  DataNode将数据以文件形式存储在本地文件系统中,它在启动时扫描本地文件系统生成一个本地文件对应的数据块列表,并将此块状态报告发送给NameNode。

  6. 通讯协议

  HDFS的通讯协议都是建立在TCP/IP协议之上,客户端通过TCP端口连接到NameNode,通过ClientProtocol协议与NameNode交互,DataNode使用DataNodeProtocol协议与NameNode交互。ClientProtocol和DataNodeProtocol是对远程调用(RPC:Remote Procedure Protocol)模型的封装,NameNode不会主动发起RPC,而是响应客户端或DataNode的RPC请求。

  7. 健壮性

  即在出错的情况下保证数据存储的可靠性,常见的问题场景有:NameNode出错,DataNode出错和网络割裂(network partitions)。NameNode通过ZooKeeper实现高可用,避免单点故障的问题,通过NameNode联盟扩展NameNode保存元数据的能力。DataNode通过周期性心跳信号报告本节点状态,在心跳异常时,NameNode会停止向问题节点派发读写数据的请求,并在当前活跃的DataNode保存的数据块副本系数低于指定值时触发数据块的复制,保证数据可靠性。

  8. 集群均衡

  当DataNode上空闲空间低于临界点时,系统会自动将此节点的数据转移到其他空闲的DataNode。

  9. 数据完整性

  HDFS会计算并保存每个数据块的校验和,客户端获取文件时会检查DataNode获取的数据是否与系统名称空间保存的校验和一致,若不一致则从其他节点获取该数据块。

  SecondaryNameNode(SNN)的作用

  SNN不是NameNode的备份,但可以做备份,辅助恢复NameNode。其主要工作是帮助NameNode定期合并Editlog和FsImage,防止文件过大,并将新的文件拷贝回NameNode,NameNode在下次重启时会使用这个新的文件,从而减少重启的时间 。

  SNN一般在另一台独立的机器上运行,它需要占用大量CPU时间来与NameNode进行合并操作,通常单独开一个线程执行合并操作。SNN保存的信息永远是滞后于NameNode,在NameNode失效时,会丢失部分数据。

  SNN执行合并的时机:

  1. 到达配置文件设置的时间间隔fs.checkpoint.period,默认为3600s;

  2. 文件大小达到设置的大小fs.checkpoint.size,默认是64MB。

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:绵阳市涪城区临园路东段68号富临大都会7栋3单元9层12号

联系电话:15023458194

公交路线:富乐路口凯德广场(10路;29路;3路;15路;11路;15a路;71路)

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市人民南路一段86号“城市之心”大厦26楼

联系电话:15023458194

公交路线:成都市人民南路(6路;14路;42路;72路;76路;1010路;)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56