5.3.2. 设置方法
1. 磁盘标识
请参考Hadoop官方,将存储盘标记为普通盘或者SSD:
http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html
这里做下对比说明:
修改SSD磁盘属性(具体操作步骤详见LSQL安装部署手册):
在含有SSD磁盘的节点将“hdfs-site.xml”中“dfs.datanode.data.dir”中的SSD磁盘对应的文件路径前面加[SSD],如下所示:
<name>dfs.datanode.data.dir</name>
<value>
file:///hdfsdata/1/hdfsdata/data,file:///hdfsdata/2/hdfsdata/data,file:///hdfsdata/3/hdfsdata/data,[SSD]file:///hdfsdata/4/hdfsdata/data, [SSD]file:///hdfsdata/5/hdfsdata/data,[SSD]file:///hdfsdata/6/hdfsdata/data
</value>
也可以不同机器分别设置,如下所示:
如果是普通盘这样设置
<property>
<name>dfs.datanode.data.dir</name>
<value>/data1/dfs,/data2/dfs </value>
</property>
如果是SSD的盘这里要加[SSD]标识
<property>
<name>dfs.datanode.data.dir</name>
<value>[SSD]/ssd1/dfs,[SSD]/ssd2/dfs </value>
</property>
注:如果该数据节点磁盘全是SSD盘,则每个路径前全加[SSD],如果该节点是SSD盘和SATA混合使用,则只在SSD磁盘对应的文件路径前加[SSD]。
2. 列簇配置
协同存储通常会跟列簇组合使用,在列簇存储里,通过下述方法配置(列簇详细使用方法参考4.1列簇存储章节):
create columnfamily common_performance (
default at 'cleanday@90,yyyyMMdd' 'index@false' 'store@false' 'ssdindex@tim,doc' 'ssdindex2@fdt,fdx'
);
ssdindex,ssdindex2为不同的协同存储。
3. 指定策略
具体操作步骤详见LSQL安装部署手册。
(1) 创建SSD路径:
hadoop fs -mkdir -p /data/lsqlointer/ssdindex
hadoop fs -mkdir -p /data/lsqlointer/ssdindex2
hadoop fs -mkdir -p /data/lsqlointer/ssdindex3
hadoop fs -mkdir -p /data/lsqlointer/ssdindex4
(2) 设置One_SSD策略(因版本差异,不同版本Hadoop的命令如下):
--Hadoop2.6版本:
hdfs dfsadmin -setStoragePolicy /data/lsqlointer/ssdindex One_SSD
hdfs dfsadmin -setStoragePolicy /data/lsqlointer/ssdindex2 One_SSD
hdfs dfsadmin -setStoragePolicy /data/lsqlointer/ssdindex3 One_SSD
hdfs dfsadmin -setStoragePolicy /data/lsqlointer/ssdindex4 One_SSD
--Hadoop2.7/2.8版本:
hdfs storagepolicies -setStoragePolicy -path /data/lsqlointer/ssdindex -policy One_SSD
hdfs storagepolicies -setStoragePolicy -path /data/lsqlointer/ssdindex2 -policy One_SSD
hdfs storagepolicies -setStoragePolicy -path /data/lsqlointer/ssdindex3 -policy One_SSD
hdfs storagepolicies -setStoragePolicy -path /data/lsqlointer/ssdindex4 -policy One_SSD
(3) 取消One_SSD策略(因版本差异,不同版本hadoop的命令如下):
--Hadoop2.6版本:
hdfs dfsadmin -setStoragePolicy /data/lsqlointer/ssdindex Hot
hdfs dfsadmin -setStoragePolicy /data/lsqlointer/ssdindex2 Hot
hdfs dfsadmin -setStoragePolicy /data/lsqlointer/ssdindex3 Hot
hdfs dfsadmin -setStoragePolicy /data/lsqlointer/ssdindex4 Hot
--Hadoop2.7/2.8版本:
hdfs storagepolicies -setStoragePolicy -path /data/lsqlointer/ssdindex -policy Hot
hdfs storagepolicies -setStoragePolicy -path /data/lsqlointer/ssdindex2 -policy Hot
hdfs storagepolicies -setStoragePolicy -path /data/lsqlointer/ssdindex3 -policy Hot
hdfs storagepolicies -setStoragePolicy -path /data/lsqlointer/ssdindex4 -policy Hot
(4) 检查One_SSD策略(因版本差异,不同版本hadoop的命令如下):
--Hadoop2.6版本
hdfs dfsadmin -getStoragePolicy /data/lsqlointer/ssdindex
hdfs dfsadmin -getStoragePolicy /data/lsqlointer/ssdindex2
hdfs dfsadmin -getStoragePolicy /data/lsqlointer/ssdindex3
hdfs dfsadmin -getStoragePolicy /data/lsqlointer/ssdindex4
--Hadoop2.7/2.8版本
hdfs storagepolicies -getStoragePolicy -path /data/lsqlointer/ssdindex
hdfs storagepolicies -getStoragePolicy -path /data/lsqlointer/ssdindex2
hdfs storagepolicies -getStoragePolicy -path /data/lsqlointer/ssdindex3
hdfs storagepolicies -getStoragePolicy -path /data/lsqlointer/ssdindex4
4. 过期数据策略更改
配置或取消ONE_SSD模式后,只有新写入的数据才会生效,旧的数据不会迁移过来。旧的数据需要通过mover进行数据的迁移。
hdfs mover /data/ssdindex