专栏首页Hadoop实操0675-6.2.0-什么是HDFS分层存储

0675-6.2.0-什么是HDFS分层存储

概述

CDH支持Hadoop分布式文件系统HDFS中的各种存储类型。早期的CDH只支持一种存储类型。现在,您可以为DataNode数据目录指定不同的存储类型,这样可以根据数据使用频率优化数据使用并降低成本。例如需要频繁使用的数据,可以存储在SSD中,而归档的数据可以存放在相对便宜的存储介质中。

集群中的每个DataNode都配置有一组数据目录,您可以为每个数据目录配置一个存储类型。存储策略指示在存储文件或目录时要使用的存储类型。常见使用不同存储类型的原因包括:

1.数据集具有时间局部性(temporal locality),比如时间序列数据。最新数据最初可以加载到SSD中以提高性能,然后随着时间的推移迁移到普通磁盘。

2.您需要将冷数据移动到更密集的归档存储,因为这些数据很少访问并且归档存储设备更便宜。这可以通过简单的老化策略来完成,比如将超过六个月的数据移动到归档存储。

1.1 存储类型

存储类型标识底层存储介质。HDFS支持以下存储类型:

  • ARCHIVE - 归档存储用于非常密集的存储,主要用于很少访问的数据。这种存储类型比普通硬盘每TB的成本会更便宜。
  • DISK - 硬盘驱动器相对便宜,并提供顺序I/O性能。这是默认存储类型。
  • SSD - 固态驱动器(Solid state drives)对于存储热数据和I/O密集型应用程序非常有用。
  • RAM_DISK - 这种特殊的内存存储类型用于加速低持久性的单副本写入。

添加DataNode数据目录时,可以通过在路径中添加存储类型前缀来指定它使用的存储类型,用括号括起来。如果未指定存储类型,则假定为DISK。

1.2 存储策略

存储策略包含描述要使用的存储类型的信息。如果主要类型空间不足或者超出配额,此策略还会定义回退存储类型。如果目标存储类型不可用,HDFS会尝试将副本放在默认存储类型上。

每个存储策略都包含策略ID,策略名称,存储类型列表,用于文件创建的回退存储类型列表以及用于复制的回退存储类型列表。

HDFS有六个预配置的存储策略。

  • Hot - 所有副本都存储在DISK上。
  • Cold - 所有副本都存储在ARCHIVE上。
  • Warm - 一个副本存储在DISK上,其他副本存储在ARCHIVE上。
  • All_SSD - 所有副本都存储在SSD上。
  • One_SSD - 一个副本存储在SSD上,其他副本存储在DISK上。
  • Lazy_Persist - 将副本写入RAM_DISK,然后缓慢的持久化到DISK。

注意:您无法创建自己的存储策略。您必须使用六个预配置策略之一。HBase等HDFS客户端可能支持不同的存储策略。

Cloudera Manager设置SSD存储

1.正常搭建你的集群,在数据目录前使用[ssd]来自定义DataNode。你也可以在集群搭建完毕以后,再设置 [ssd]前缀,不过这需要重启HDFS服务。

2.停止HBase服务。

3.使用HDFS客户端,将/hbase改名为/hbase_backup。

4.使用Cloudera Manager重建HBase服务的/hbase目录,这样可以保证权限正确。使用HDFS客户端,将/hbase目录的存储策略设置为仅SSD。

5.使用Distcp拷贝/hbase_backup到/hbase。

hadoop distcp /hbase_backup /hbase

6.启动HBase服务。

设置HDFS存储策略

注意:因为使用Cloudera Manager操作,最小角色需要Cluster Administrator,Full Administrator同样具有权限操作。

要使用Cloudera Manager在DataNode数据目录上设置存储策略,请执行以下操作:

1.确保HDFS Service Advanced Configuration Snippet (Safety Valve) for hdfs-site.xml中的配置dfs.storage.policy.enabled没有被修改,默认值为true。

2.通过在目录路径开头的括号中添加存储类型,为每个不是标准磁盘的DataNode数据目录指定存储类型。例如:

[SSD]/dfs/dn1
[DISK]/dfs/dn2
[ARCHIVE]/dfs/dn3

3.在任何HDFS主机上打开终端会话。对要设置存储策略的每个路径运行以下hdfs命令:

$ hdfs storagepolicies -setStoragePolicy -path <path> -policy <policy>
path_to_file_or_directory -policy policy_name

4. 要根据当前存储策略将数据移动到适当的存储,需要使用mover命令。使用mover -h获取可用选项列表。要一次迁移所有数据(这可能需要很长时间),您可以将路径设置为/。

hdfs mover -p <path>

注意:在设置存储策略或写入文件时强制执行配额,而不是修改配额时。Mover工具无法识别配额违规。它仅验证文件是否存储在其策略中指定的存储类型上。

管理存储策略

1. 要获取DataNode上特定文件或目录的存储策略,请使用以下命令:

hdfs storagepolicies -getStoragePolicy -path <path>path_to_policy

2. 要列出一台DataNode上的所有策略,可以使用以下命令:

hdfs storagepolicies -listPolicies

3. 要重置存储策略,可以参考上一章节。

迁移已有数据

要根据当前存储策略将数据移动到适当的存储,需要使用mover命令。使用mover -h获取可用选项列表。 要一次迁移所有数据(这可能需要很长时间),您可以将路径设置为/。

hdfs mover -p <path>

注意:在设置存储策略或写入文件时强制执行配额,而不是修改配额时。Mover工具无法识别配额违规。它仅验证文件是否存储在其策略中指定的存储类型上。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f),作者:Fayson

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 你为什么还在用存储过程?

    存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过...

    Fayson
  • 什么是HDFS的纠删码

    Fayson在前面的文章中介绍过CDH6,参考《Cloudera Enterprise 6正式发布》和《如何在Redhat7.4安装CDH6.0》。CDH6主要...

    Fayson
  • 如何在CDH集群外配置Kerberos环境的Gateway节点

    Fayson
  • 调研:云存储运营情况两极化 一半是冰山一半是火焰

    T客汇官网:tikehui.com 原文作者:Charles Babcock 编译:徐婧欣 ? 对象存储系统供应商 Cloudian 于 11 月初做了一项调查...

    人称T客
  • 干货 | 如何评估Kubernetes持久化存储方案

    从用户角度看,存储就是一块盘或者一个目录,用户不关心盘或者目录如何实现,用户要求非常“简单”,就是稳定,性能好。为了能够提供稳定可靠的存储产品,各个厂家推出了各...

    焱融科技
  • 如何利用公共云存储构建中小企业存储

    中小型企业(SME)的技术需求虽然比大企业的少,但仍然很重要。其中的关键是中小企业的存储。

    CloudBest
  • 深度||全球存储二十年并购回顾,中国存储何时迎来春天?

    1998--2018年是全球存储工业从崛起走向成熟的二十年。回顾这二十年全球存储市场的并购之路,我们发现收购金额超过10亿美金的重要收购超过50个,涵盖了从传统...

    大数据在线
  • 存储04-存储的三种类型:块/文件/对象

    存储按照对外提供服务的方式分为:块存储、文件存储、对象存储。块存储即我们日常说的SAN存储;文件存储即我们日常说的NAS存储;对象存储是最近几年才兴起的一种存储...

    大话IT架构
  • 如何利用公共云存储构建中小企业存储

    内部部署的超融合基础设施对于中小企业来说非常适合,这消除了对SAN存储及其相关技能的需求,但是,对于希望实现存储基础设施现代化的中小企业,有许多方法可以从云存储...

    静一
  • 云存储是如何工作的?

    如今,企业越来越多地采用云存储选项,因为它们需要更多的容量、弹性容量以及更好的方式来管理存储成本。事实证明,越来越多的企业数据和云数据难以让IT部门单独使用他们...

    静一

扫码关注云+社区

领取腾讯云代金券