赞
踩
数据分布在多台机器上
计算随数据走
串行 IO 取代随机 IO
传输时间 << 寻道时间,一般数据写入后不在修改
Hadoop 可运行与一般的商用机器上,具有高容错,高可靠性,高扩展等特点
特别适合写一次,读多次的场景
内部各个节点基本都是采用 Master-Worker 架构
Hadoop Distributed File System,分布式文件系统
Block 数据块
NameNode
Secondary NameNode
定时与 NameNode 进行同步(定期合并文件系统镜像和编辑日志,然后把合并后的结果传给 NameNode,替换其镜像,并清空编辑日志,类似于 CheckPoint 机制),但 NameNode 失效后仍需要手工将其设置成主机。
DataNode
客户端将文件写入本地磁盘的文件中
当临时文件大小达到一个Block大小时,HDFS Client 通知 NameNode,申请写入文件
NameNode 在HDFS的文件系统中创建一个文件,并把该 Block ID 和要写入的 DataNode 的列表返回给客户端
客户端收到这些消息后,将临时文件写入 DataNodes
文件写完后(客户端关闭),NameNode 提交文件(这时文件才可见,如果提交前,NameNode 挂掉,那文件也就丢失了。
fsync:只保证数据的信息写到 NameNode 上,但并不保证数据已经被写道 DataNode 中)
Rack Aware(机架感知)
通过配置文件制定机架名和DNS的对应关系
假设复制参数是3,在写入文件时,会在本地的机架保存一份数据,然后再另一个机架内保存两份数据(同机架内的传输速度快,从而提高性能)
整个HDFS的集群,最好是负载均衡的,这样才能尽量利用集群的优势
DataNode 可以失效
DataNode 会定时发送心跳到 NameNode。如果在一段时间内 NameNode 没有收到 DataNode 的心跳信息,则认为其失效。此时 NameNode 就会将该节点的数据(从该节点的复制节点中获取)复制到另外的 DataNode 中。
数据可以损坏
无论是写入时还是硬盘本身的问题,只要数据有问题(读取时通过校验码来检测),都可以通过其他的复制节点读取,同时还会再复制一份到健康的节点中。
NameNode 不可靠
架构存在的问题:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。