hadoop2.0的datanode数据存储文件夹策略的多个副本

hadoop2.0的datanode数据存储文件夹策略的多个副本

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

在hadoop2.0在,datanode数据存储盘选择策略有两种方式复制:

首先是要遵循hadoop1.0磁盘文件夹投票,实现类:RoundRobinVolumeChoosingPolicy.java

另外一种是选择可用空间足够多的磁盘方式存储,实现类:AvailableSpaceVolumeChoosingPolicy.java

选择策略相应的配置项是:

  <property>
    <name>dfs.datanode.fsdataset.volume.choosing.policy</name>
    <value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value>
  </property>

假设不配置。默认使用第一种方式。既轮询选择磁盘来存储数据副本,可是轮询的方式尽管可以保证全部磁盘都可以被使用,可是常常会出现各个磁盘直接数据存储不均衡问题,有的磁盘存储得非常满了,而有的磁盘可能还有非常多存储空间没有得到利用,全部在hadoop2.0集群中。最好将磁盘选择策略配置成另外一种,依据磁盘空间剩余量来选择磁盘存储数据副本,这样一样能保证全部磁盘都能得到利用,还能保证全部磁盘都被利用均衡。

在採用另外一种方式时还有另外两个參数会用到:

dfs.datanode.available-space-volume-choosing-policy.balanced-space-threshold 

默认值是10737418240。既10G,一般使用默认值即可,下面是该选项的官方解释:

This setting controls how much DN volumes are allowed to differ in terms of bytes of free disk space before they are considered imbalanced. If the free space of all the volumes are within this range of each other, the volumes will be considered balanced and block assignments will be done on a pure round robin basis. 

意思是首先计算出两个值,一个是全部磁盘中最大可用空间,另外一个值是全部磁盘中最小可用空间,假设这两个值相差小于该配置项指定的阀值时。则就用轮询方式的磁盘选择策略选择磁盘存储数据副本。

源码例如以下:

public boolean areAllVolumesWithinFreeSpaceThreshold() {
      long leastAvailable = Long.MAX_VALUE;
      long mostAvailable = 0;
      for (AvailableSpaceVolumePair volume : volumes) {
        leastAvailable = Math.min(leastAvailable, volume.getAvailable());
        mostAvailable = Math.max(mostAvailable, volume.getAvailable());
      }
      return (mostAvailable - leastAvailable) < balancedSpaceThreshold;
    }


dfs.datanode.available-space-volume-choosing-policy.balanced-space-preference-fraction

默认值是0.75f。一般使用默认值即可,下面是该选项的官方解释:
This setting controls what percentage of new block allocations will be sent to volumes with more available disk space than others. This setting should be in the range 0.0 – 1.0, though in practice 0.5 – 1.0, since there should be no reason to prefer that volumes with

意思是有多少比例的数据副本应该存储到剩余空间足够多的磁盘上。

该配置项取值范围是0.0-1.0,一般取0.5-1.0,假设配置太小,会导致剩余空间足够的磁盘实际上没分配足够的数据副本,而剩余空间不足的磁盘取须要存储很多其它的数据副本,导致磁盘数据存储不均衡。

參考:

http://www.it165.net/admin/html/201409/3635.html

http://blog.csdn.net/chenpingbupt/article/details/7972589


版权声明:本文博客原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117226.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux系统查看网卡命令_linux如何配置网卡

    linux系统查看网卡命令_linux如何配置网卡rhel内核版本号信息:[root@hvrhub~]#uname-aLinuxhvrhub2.6.18-308.el5#1SMPFriJan2717:17:51EST2012x86_64x86_64x86_64GNU/Linux查看网卡的驱动。制造商等信息:[root@hvrhub~]#kudzu–probe–class=network-class:…

    2022年10月19日
    1
  • Git安装教程(详细教程)

    Git安装教程(详细教程)Git安装教程大家好,今天我们来学习一下怎么安装git这个软件,好好看,好好学,超详细的。第一步下载git(找到自己需要的版本)第二步下载完点击安装包进入使用许可声明界面第三步点击Next进入选择安装路径界面这里我是选择装在D盘,大家如果嫌麻烦就默认安装在C盘第四步点击Next进入选择安装组件界面上图红框内的选项是默认勾选的,建议不要动。绿色框1是决定是否在桌面创建快捷方式的。绿色框2是决定在所有控制台窗口中使用TrueType字体和是否每天检查Git

    2022年5月1日
    47
  • java中高级面试题总结(全面)_java面试题大全

    java中高级面试题总结(全面)_java面试题大全jvm结构原理,GC工作原理Jvm结构:Jvm主要包括四个部分:1、类加载器(ClassLoad)在JVM启动时或者在类运行时将需要的class加载到JVM中。类加载时间与过程:类从被加载到虚拟机内存开始,在到卸载出内存为止,正式生命周期包括了:加载,验证,准备,解析,初始化,使用和卸载7个阶段。其中验证、准备、解析这个三个步…

    2022年8月20日
    6
  • MFC学习——下检测计算机是否联网

    MFC学习——下检测计算机是否联网一个最简单的类方法:Bool IsNetworkAlive( __out LPDWORD lpdwFlags);返回TRUE表示联网,FALSE表示未连接到网络。使用时注意在头文件中加入如下代码:#include <Sensapi.h>#pragma comment(lib, “Sensapi.lib”)函数使用举例: DWORD ws;…

    2022年8月18日
    13
  • 截至2006年3月1日全球CCIE人数统计

    截至2006年3月1日全球CCIE人数统计

    2022年3月12日
    85
  • 基于单片机的交通信号灯控制系统设计_交通信号灯程序编程

    基于单片机的交通信号灯控制系统设计_交通信号灯程序编程1、.设计任务交通信号灯控制系统:要求能显示剩余时间和控制红、黄、绿三色灯的显示。2、总体方案设计与方案论证(1)总体方案设计设计路口交通灯控制系统,使用LED显示单元的两组发光二极管(红黄绿)分别模拟十字路口的两组交通灯。a、南北路口的绿灯、东西路口的红灯同时亮20秒。数码管20秒倒记时显示。b、南北路口的黄灯亮5秒,同时东西路口的红灯继续亮。数码管5秒倒记时显示。c、南北

    2022年9月24日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号