zoukankan      html  css  js  c++  java
  • HDFS核心设计

    一、HDFS核心设计

      数据块(block)

        数据块是HDFS上最基本的存储单位

        HDFS块默认大小为128M

              对块进行抽象会带来的好处

          一个小文件的大小可以大于网络中任意一个磁盘的容量

          使用块抽象而不是文件可以简化存储子系统

          块非常适合用于数据备份进而提供数据容错能力和可用性

      数据块复制

        HDFS为了做到可靠性创建多分数据块,MapReduce就可以在他们所在节点上处理这些数据了

        HDFS将每个文件存储成块序列

        每个文件的block大小和复制因子都是可配置的 HDFS-site.xml

      数据副本的存放策略

        数据分块存储和副本的存放,是保证可靠性和高性能的关键

        将每个文件的数据进行分块存储

          每一个数据块又保存有多个副本

          这些数据块副本分布在不同的机器节点上

        在多数情况下,HDFS默认的副本系数是3

        Hadoop默认对3个副本的存放策略

          第一块:在本机器的HDFS目录下存储一个block

          第二块:在不同rack(机架)的某个DataNode上存储一个block

          第三块:在该机器的同一个rack下的某台机器上存储最后一个block

          更多副本:随机节点

        设置集群block的备份数

          方法一:配置文件hdfs-site.xml

          方法二:通过命令修改备份数

            bin/hadoop fs -setrep -R 1 /

        安全模式

          安全模式是Hadoop集群的一种保护模式

          用命令来操作安全模式

            Hadoop dfsadmin -safemode leave //强制NameNode退出安全模式

            Hadoop dfsadmin -safemode enter  //进入安全模式

            Hadoop dfsadmin -safemode get      //查看安全模式状态

            Hadoop dfsadmin -safemode wait     //等待,一直到安全模式结束

        负载均衡

          机器和机器之间磁盘利用率不平衡HDFS集群非常容易出现的情况

            尤其是在DataNode节点出现故障或在现有的集群上增添新的DataNode的时候

          分析数据块分布和重新均衡DataNode上的数据分布的工具

            $HADOOP_HOME/bin/start-balancer.sh -t 10%

          负载均衡程序作为一个与独立的进程namenode进程分开执行

          心跳机制

          机架感知

            大型Hadoop集群是以机架的形式来组织的

              同一个机架上不同节点间的网络状况比不同机架之间的更为理想

            默认情况下,Hadoop的机架感知是没有被启用的

              启用机架感知功能,在namenode所在机器的core-site.xml中配置一个选项

    不忘初心,方得始终! 坚持!坚持!坚持!!
  • 相关阅读:
    分享jQuery的常用技巧12招
    浅析淘宝数据魔方技术架构
    JavaScript的跨域共享的方法
    PHP实现QQ达人信息抓取
    Dreamweaver CS5.5试用小感和破解方法附下载地址
    ExtJS 4应用架构设计
    webkit webApp 开发技术要点总结
    用delphi编写ISAPI过滤器
    1020卡免费共享测试!
    一些有用的網站
  • 原文地址:https://www.cnblogs.com/sumboy/p/9066111.html
Copyright © 2011-2022 走看看