【问题标题】:Is it possible to use HDFS storage types/policies together with HBase?是否可以将 HDFS 存储类型/策略与 HBase 一起使用?
【发布时间】:2021-03-11 02:57:14
【问题描述】:

HDFS 有一个名为 storage types/policies 的功能 - 它可以将文件存储在具有不同属性(快速 SSD 或慢但便宜的存档存储)的存储中。

我想知道是否可以通过 HBase 使用此功能?

我的用例是我有一些“热”的数据并且预计会被频繁访问,因此我想将其放在“热”(SSD)存储中,而一些数据是“冷”的并且不经常访问所以我想把它放在更便宜的存储上。我正在尝试找出如何使用 HBase/HDFS 来组织它。

【问题讨论】:

    标签: hadoop hdfs hbase


    【解决方案1】:

    我可以看到存储策略允许您指定一个策略on a file or directory,它们是根据某些规则应用的。

    我们应该记住,在 HBase 安装过程中,我们指定了存储数据的 HDFS 目录,例如:

    <property>
       <name>hbase.rootdir</name>
       <value>hdfs://localhost:8030/hbase</value>
    </property>
    

    所以,/hbase 是一个 HDFS 目录,您可以在其中指定策略。我们知道 HBSE 目录结构类似于:

    hdfs://hbase/data/MyFirstNamespace/MyTable1
    hdfs://hbase/data/MyFirstNamespace/MyTable2
    

    因此,我会在 HDFS 的目录级别设置存储策略,例如,Cold 用于 MyTable1,All_SSD 用于 MyTable2:

    hdfs storagepolicies -setStoragePolicy -path /hbase/data/MyFirstNamespace/MyTable1 -policy Cold
    hdfs storagepolicies -setStoragePolicy -path /hbase/data/MyFirstNamespace/MyTable2 -policy All_SSD
    

    这需要在您创建新的 HBase 表后完成。

    【讨论】:

      【解决方案2】:

      HBase 数据存储在使用属性hbase.rootdir 配置的路径下的 HDFS(如果 HDFS 是目标存储)中。您可以从hbase-site.xml 找到它的值。然后,您可以针对该 HDFS 路径应用 HDFS 存储策略。

      【讨论】:

      • 是否有可能以某种方式对不同的表使用不同的策略?
      • 据我所知,您无法从任何 HBase 接口应用此策略。 IIRC,您可以在${hbase.rootdir}/data${hbase.rootdir}/data/default 下找到每个表的特定目录以及表的名称。您可以单独选择这些表 hfile 存储目录并应用相应的存储策略,而不是应用到 hbase.rootdir 的父文件夹。我不确定这可能是最好的方法,因为每当我们创建新表等时它都会涉及管理开销。
      猜你喜欢
      • 2021-08-09
      • 1970-01-01
      • 2021-12-16
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 2020-05-08
      相关资源
      最近更新 更多