在YDB1.1.9.3版本发布之后,大家惊喜的发现YDB多了一项新的功能——异构存储
众所周知SSD的性能是普通SATA 盘的百倍以上,但是SSD真是太贵太贵了,
100T的存储用SATA盘可能才五六万块钱,同样大小即使最廉价的三星SSD也需要50~60万才能下来,如果是十台呢?二十台呢?
如何用SATA盘的成本,让延云YDB有着近似于SSD 的性能?
答案就是————
让我们先来了解下如何通过异构存储来节约我们的存储成本.
YDB的文件存储由两部分组成,分别为数据部分与索引部分
索引部分对整体的数据检索性能起着至关重要的影响,而数据则相对来说差一些.
如果:将数据部分存储在SATA盘,而将索引部分存储在SSD盘上, 这样就可以有效的降低存储成本
以某生产项目为例,索引部分只占整体存储的五分之一,如果做2份冗余,冗余部分只需要存储在SATA盘上,那么SSD部分仅需整体存储的十分之一,如果数据可以按照冷热数据区分,那么我们可以将近期的数据可以使用SSD存储,根据时间的推移慢慢的将数据转移到SATA盘中。
废话不多说,接下来给大家介绍如何给我们的YDB配置异构环境
1.首先我们要确保目前使用的YDB版本是YDB1.1.9.3(含)以上版本,在此之前的版本是不支持异构存储的。
2.如果您使用的是HDP版本的Hadoop的话,需要在ambari中指定Datanode中那几块盘是SSD,那几块盘是SATA
ps:关于Hadoop异构存储部分配置,您可以通过以下进行了解
Hadoop异构存储配置
3.创建异构文件目录
hadoop fs -mkdir /data/ycloud/ydb/ydbpath/ssdindex
hadoop fs -mkdir /data/ycloud/ydb/ydbpath/ssdindex2
hadoop fs -mkdir /data/ycloud/ydb/ydbpath/ssdindex3
hadoop fs -mkdir /data/ycloud/ydb/ydbpath/ssdindex4
4.指定异构存储策略 :One_SSD
hdfs storagepolicies -setStoragePolicy -path /data/ycloud/ydb/ydbpath/ssdindex -policy One_SSD
hdfs storagepolicies -setStoragePolicy -path /data/ycloud/ydb/ydbpath/ssdindex2 -policy One_SSD
hdfs storagepolicies -setStoragePolicy -path /data/ycloud/ydb/ydbpath/ssdindex3 -policy One_SSD
hdfs storagepolicies -setStoragePolicy -path /data/ycloud/ydb/ydbpath/ssdindex4 -policy One_SSD
5.在ydb_site.yaml里设置,索引部分存储在SSD路径上
ydb.index.ssd.ext: “tim,skp@doc,fdx,tip@dvm,fdt,dvd,pos”
如果想只配置具体的某一个表,可以
ydb.index.ssd.ext.xxx表名: “tim,skp@doc,fdx,tip@dvm,fdt,dvd,pos”
配置完成后重启ydb
每种拓展名的解释
6.创建测试表
create ydbtable czy_quickstart(
phonenum dblikebig,
usernick string,
ydb_sex string,
ydb_province string,
ydb_grade string,
ydb_age string,
ydb_blood string,
ydb_zhiye string,
ydb_earn string,
ydb_prefer string,
ydb_consume string,
ydb_day string,
amtdouble tdouble,
amtlong tlong,
content dblikebig
)
7.导入数据
./bin/ydbimport.sh -t czy_quickstart -p 20180206 -tp txt -f /data/example/quickstart -sp , -fl phonenum,usernick,ydb_sex,ydb_province,ydb_grade,ydb_age,ydb_blood,ydb_zhiye,ydb_earn,ydb_prefer,ydb_consume,ydb_day,amtdouble,amtlong,content
8.进入ya100/sbin目录,打开mover.sh脚本,将红框内修改为您想要设置的表名,并执行该脚本。
有关YDB异构存储就介绍到这里了,如果您对于YDB的功能及产品还存有疑问可以通过以下方式获取试用及技术支持
(如果您无法获取清晰的二维码信息,可单击下图放大↓)