设为首页 收藏本站
查看: 836|回复: 0

[经验分享] hadoop学习笔记之--- HDFS原理学习

[复制链接]
发表于 2018-10-30 13:38:45 | 显示全部楼层 |阅读模式
  HDFS
  HDFS设计基础与目标:

  •   冗余:硬件错误是常态
  •   流式数据访问。即数据比量读取而非随机读写,Hadoop擅长做的是数据分析而不是事务处理。
  •   大规模数据集
  •   简单一致性模型。为了降低系统复杂程度,对文件采用一次性写多多次读的逻辑设置,即是文件一经写入,关闭,再也不能修改。
  •   程序采用“数据京近”原则分配节点执行。
  OLTP:偶尔随机性德读写
  HDFS体系架构:
  NameNode:
  管理文件系统的命名空间;
  记录每个文件数据块在各个Datanode上的位置和副本信息;
  协调客户端对文件的访问;
  记录命名空间内的改动或空间本身属性的改动;
  Namenode使用事务日志记录HDFS元数据的变化;
  使用映像文件存储文件系统的命令空间,包括文件映射,文件属性等;
  DateNode
  负责所在物理节点的存储管理;
  一次写入,多次读取(不能修改,不用考虑数据读取一致性);
  文件由数据块组成,典型块大小64MB;
  数据块尽量散布到各个节点;
  HDFS读取数据流程
  客户端要访问HDFS中一个文件;
  首先从namenode获得组成这个文件的数据块位置列表;
  根据列表知道存储数据块的datanode;
  访问datanode获取数据;
  Namenode并不参与数据实际传输;
  HDFS的可靠性

  •   冗余副本策略
  在hdfs-site.xml设置replication设置复制因子,指定副本数量;
  复制因子:如果是1 没有副本。副本数太多,空间利用,复制副本影响性能。
  Datanode启动时,遍历本地文件系统,产生一份hdfs数据块和本地文件的对应关系列表(块报告blockreport)汇报给namenode;

  •   机架策略
  集群一般放在不同机架上,机架间带宽要比机架内带宽要小;
  HDFS的“机架感知”
  一般在本机架存放一个副本,在其它机架再放别的副本,这样可以防止机架失效时丢失数据,提高带宽利用率;

  •   心跳机制
  Oracle:  rack
  Namenode周期性从datanode接收心跳信号和块报告;
  Namenode根据块报告验证元数据;
  没有按时发送心跳的datanode会被标记为宕机,不会再给它任何I/O请求;
  如果datanode失效造成副本数量下降,并且低于预先设置的阈值,namenode会检测出这些数据块,并在合适的时机进行重复制;
  引发重新复制的原因还包括数据副本本身损坏、磁盘错误,复制因子被增大等;

  •   安全模式
  Namenode启动时会先经过一个安全模式阶段;
  安全模式阶段不会产生数据写;
  在此阶段namenode收集各个datanode的报告,当数据块达到最小副本以上时,会被认为是安全的;
  在一定比例(可设置)的数据块被确定安全后,再过若干时间,安全模式结束;
  当检测到副本数不足的数据块时,该块会被复制直达到最小副本数;

  •   校验和:验证数据是否是完整
  在文件创立时,每个数据块都会产生校验和;
  校验和会作为单独一个隐藏文件保存在命名空间下;
  客户端获取数据时可以检查校验和是否相同,从而发现数据块是否损坏;
  如果正在读取的数据块损坏,则可以继续读取其它副本;

  •   回收 站
  删除文件时,其实是放入回收站,同windows回收站;
  回收站里的文件可以快速恢复;
  可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值时,就被彻底删除,并且释放占用的数据块;
  core_site.xml文件中开启功能:fs.trash.interval
  说明:hadoop垃圾回收机制,每隔多长时间清理一次垃圾
  value:1440
  备注:默认值是0,不打开垃圾收回机制。删除掉的文件将直接清除,不保存。如果设置了,则将保存到本地的.crash文件夹下
  如果开启回收站功能:

  •   元数据保护
  元数据包括映像文件和事务日志;
  是namenode的核心数据,可配置为拥有多个副本;

  •   快照
  支持存储某个时间点的映像,需要时可以使数据重返这个时间的状态;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-628571-1-1.html 上篇帖子: 【电子书】Hadoop实战手册 (样章第一章) 下篇帖子: STORM与HADOOP的比较
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表