Hadoop异构存储

Hadoop异构存储,第1张

Hadoop异构存储 Hadoop查看存储类型:

命令:hdfs storagepolicies -listPolicies

IDName存储类型降级机制(原本)降级机制(副本)1PROVIDED

PROVIDED

DISK

PROVIDED

DISK

PROVIDED

DISK

2COLDARCHIVE无无5WARM

DISK

ARCHIVE

DISK

ARCHIVE

DISK

ARCHIVE

7HOTDISK无ARCHIVE10ONT_SSD

SSD

DISK

SSD

DISK

SSD

DISK

12ALL_SSDSSDDISKDISK15LAZY_PROVIDED

RAM

DISK

DISKDISK

(ARCHIVE代表的是计算能力比较弱而存储密度比较高的存储介质)

CLOD:数据全部位于ARCHIVE中;

WRAM:介于hot和cold之间,有一份数据放在DISK上;

Hot:数据放在DISK上;

ONT_SSD:将数据的一个副本存储在SSD中,其余的副本存储在磁盘中;

ALL_SSD:文件及其副本均放置在SSD中;

Lazy_Provided:如果文件被设置为Lazy_Persist策略,当客户端向该文件发起读写请求,客户端写入的数据会首先被相应Block块的DataNode写入到自己的RAM内存中,同时DN会启动异步线程服务将内存中的数据持久化到磁盘上。

hdfs支持在文件使用过程中灵活改变文件的storage policy,hdfs列出了几个storage policy相关的命令

配置:

(1)开启hdfs异构存储策略:dfs.storage.policy.enabled,该配置默认是开启的(true)

(2)将机器物理硬件上已经部署好的磁盘配置添加到hdfs配置项dfs.datanode.data.dir中,

需要注意的是对于SSD或者RAM需要加上特殊的标签,如[SSD]、[RAM_DISK]


        dfs.datanode.data.dir
        
                file:///home/data/data/hadoop/dfs/data/data1,
                file:///home/data/data/hadoop/dfs/data/data2,
                file:///home/data/data/hadoop/dfs/data/data3,
                file:///home/data/data/hadoop/dfs/data/data4,
                file:///home/data/data/hadoop/dfs/data/data5,
                file:///home/data/data/hadoop/dfs/data/data6,
                file:///home/data/data/hadoop/dfs/data/data7,
                file:///home/data/data/hadoop/dfs/data/data8,
                file:///home/data/data/hadoop/dfs/data/data9,
                file:///home/data/data/hadoop/dfs/data/data10,
                file:///home/data/data/hadoop/dfs/data/data11,
                file:///home/data/data/hadoop/dfs/data/data12,                    
                [SSD]file:///home/data/data/hadoop/dfs/data/data13
        
        true

Hbase异构存储
public static void setStoragePolicy(final FileSystem fs, final Configuration conf,
    final Path path, final String policyKey, final String defaultPolicy) {
  String storagePolicy = conf.get(policyKey, defaultPolicy).toUpperCase();
  if (!storagePolicy.equals(defaultPolicy) &&
      fs instanceof DistributedFileSystem) {
    DistributedFileSystem dfs = (DistributedFileSystem)fs;
    Class dfsClass = dfs.getClass();
    Method m = null;
    
    try {
      m = dfsClass.getDeclaredMethod("setStoragePolicy",
          new Class[] { Path.class, String.class });
      m.setAccessible(true);
    } catch (NoSuchMethodException e) {
      LOG.info("FileSystem doesn't support"
          + " setStoragePolicy; --HDFS-7228 not available");
    } catch (SecurityException e) {
      LOG.info("Doesn't have access to setStoragePolicy on "
          + "FileSystems --HDFS-7228 not available", e);
      m = null; // could happen on setAccessible()
    }

    if (m != null) {
      try {
        m.invoke(dfs, path, storagePolicy);
        LOG.info("set " + storagePolicy + " for " + path);
      } catch (Exception e) {
        LOG.warn("Unable to set " + storagePolicy + " for " + path, e);
      }
    }
  }
}

理想的混合机型集群异构部署,

对于 Hbase 层面来看,文件存储可选三种策略:HOT, ONE_SSD, ALL_SSD,

其中 :

ONE_SSD 存储策略既可以把三个副本中的两个存储到便宜的 SATA 磁盘介质之上来减少 SSD 磁盘存储成本的开销,同时在数据读取访问本地 SSD 磁盘上的数据可以获得理想的 RT ,是一个十分理想的存储策略。

HOT 存储策略与不引入异构存储时的存储情况没有区别,而 ALL_SSD 将所有副本都存储到 SSD 磁盘上。

链接:

​​​[Hadoop] 使用DFSIO测试集群I/O性能_mryqu_新浪博客

YCSB数据库性能测试工具 - 简书

Hbase测试|Hbase 2.2.1随机读写性能测试【图文】_mb5fdb0a6739180_51CTO博客

HDFS原理|HDFS-Tiering 数据分层存储

Hbase性能监控及最佳实践 - 豆丁网

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5664794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存