HDFS 异构储存配置及基本命令操作

hadoop-2.8.4 部署我就不说了 网上一大堆

hdfs-site.xml datanode 储存路径挂载需要修改如下:

<property>
    <name>dfs.datanode.data.dir</name>
    <value>[DISK]file:///data/hdfs-disk/hadoop/dfs/data,[SSD]file:///data/hdfs-ssd/hadoop/dfs/data,[RAM_DISK]file:///data/hdfs-ram/hadoop/dfs/data</value>
</property>

我们假设你有 ssd/ram-disk 等挂载, 创建好以下目录

sudo mkdir -p /data/hadoop/dfs/name
sudo mkdir -p /data/hdfs-disk/hadoop/dfs/data
sudo mkdir -p /data/hdfs-ssd/hadoop/dfs/data
sudo mkdir -p /data/hdfs-ram/hadoop/dfs/data

sudo chown -R hadoop:hadoop /data/hadoop/dfs/name
sudo chown -R hadoop:hadoop /data/hdfs-disk/hadoop/dfs/data
sudo chown -R hadoop:hadoop /data/hdfs-ssd/hadoop/dfs/data
sudo chown -R hadoop:hadoop /data/hdfs-ram/hadoop/dfs/data

把一个默认[DISK]储存的文件变成[SSD]储存步骤 / 如果你想把一个目录下文件变成某种策略,也可以按照以下操作完成

1. hdfs dfs -put hadoop-2.8.4.tar.gz /
2. hdfs fsck /hadoop-2.8.4.tar.gz -files -locations -blocks
查看当前文件的blocks 所在节点 及储存类型如DISK/SSD等,默认上传都是DISK
3. hdfs storagepolicies -setStoragePolicy -path /hadoop-2.8.4.tar.gz -policy ONE_SSD 
修改储存策略为ONE_SSD
4. hdfs mover -p /hadoop-2.8.4.tar.gz
执行修改的储存策略
5.hdfs fsck /hadoop-2.8.4.tar.gz -files -locations -blocks  或者 hdfs storagepolicies -getStoragePolicy -path /hadoop-2.8.4.tar.gz
查看发现已经有一个副本在SSD上了

如果你想把例如HBASE WALS目录指定成ALL_SSD策略,如下操作即可

1. hdfs dfs -mkdir /ssd
2. hdfs storagepolicies -setStoragePolicy -path /ssd -policy ALL_SSD 
3. hadoop fs -put zookeeper-3.4.6.jar /ssd/
4. hdfs fsck /ssd/zookeeper-3.4.6.jar -files -locations -blocks 或者 hdfs storagepolicies -getStoragePolicy -path /ssd/zookeeper-3.4.6.jar
查看得知 /ssd/zookeeper-3.4.6.jar 已经是ssd储存了
The storage policy of /ssd/zookeeper-3.4.6.jar:
BlockStoragePolicy{ALL_SSD:12, storageTypes=[SSD], creationFallbacks=[DISK], replicationFallbacks=[DISK]}

在hdfs中存储策略分为以下几种:

HOT:用于存储热数据,默认情况,hdfs的数据都采用的是HOT策略,所有的副本都存储在DISK中。
COLD:用于存储冷数据,所有的数据副本存储在ARCHIV中。
Warm:有些数据存在DISK中,有些做归档处理 。
All_SSD:所有的数据副本都存储在SSD中。
One_SSD:将数据的一个副本存储在SSD中,其余的副本存储在磁盘中。
Lazy_Persist:用于在内存中写入单个副本的块。该副本首先在RAM_DISK中写入,后续持久化到DISK中。

常用命令:

1.切换到hdfs用户,查看当前有哪些存储策略可以用
hdfs storagepolicies –listPolicies

2.获取指定路径的存储策略
hdfs storagepolicies -getStoragePolicy -path /user

3. 指定路径的储存策略 文件目录均可
hdfs storagepolicies -setStoragePolicy -path /hadoop-2.8.4.tar.gz -policy ONE_SSD

4.执行修改的储存策略的文件 一般需要花一些时间
例如之前他是[DISK]  /hadoop-2.8.4.tar.gz ,然后你指定了储存策略为[ONE_SSD] 然后执行  hdfs mover -p /hadoop-2.8.4.tar.gz 后, 有一个副本就在ssd上了
 hdfs mover -p /hadoop-2.8.4.tar.gz


原文地址:https://www.cnblogs.com/jiangxiaoxian/p/9392313.html