舒适提示:若是使用电脑查看图片不清晰,可使用手机打开文章单击文中的图片放大查看高清原图。nginx
Fayson的github:git
https://github.com/fayson/cdhprojectgithub
提示:代码块部分能够左右滑动查看噢web
CDH支持Hadoop分布式文件系统HDFS中的各类存储类型。早期的CDH只支持一种存储类型。如今,您能够为DataNode数据目录指定不一样的存储类型,这样能够根据数据使用频率优化数据使用并下降成本。例如须要频繁使用的数据,能够存储在SSD中,而归档的数据能够存放在相对便宜的存储介质中。微信
集群中的每一个DataNode都配置有一组数据目录,您能够为每一个数据目录配置一个存储类型。存储策略指示在存储文件或目录时要使用的存储类型。常见使用不一样存储类型的缘由包括:app
1.数据集具备时间局部性(temporal locality),好比时间序列数据。最新数据最初能够加载到SSD中以提升性能,而后随着时间的推移迁移到普通磁盘。tcp
2.您须要将冷数据移动到更密集的归档存储,由于这些数据不多访问而且归档存储设备更便宜。这能够经过简单的老化策略来完成,好比将超过六个月的数据移动到归档存储。分布式
1.1 存储类型工具
存储类型标识底层存储介质。HDFS支持如下存储类型:oop
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客户端可能支持不一样的存储策略。
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服务。
注意:由于使用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实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操
本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。