mob特性可以解决海量小文件图片视频的读写存储,
当前mob的参考单元文件和mob文件只能保存到相同的存储类型, 要么是ssd, 要么是disk.
可以把参考单元存储到ssd, mob file存储到disk, 提高读取性能
- 设置columnfamily的storagepolicy为 ALL_SSD.
- 修改StoreFileWriter class代码:
// set block storage policy for temp path
String policyName = this.conf.get(ColumnFamilyDescriptorBuilder.STORAGE_POLICY);
if (null == policyName) {
policyName = this.conf.get(HStore.BLOCK_STORAGE_POLICY_KEY);
}
if (dir.toString().indexOf("/hbase/mobdir") > -1){
policyName = "HOT";
String nowPolicyName = ((org.apache.hadoop.hbase.fs.HFileSystem) fs).getStoragePolicyName(dir);
if(nowPolicyName == null || nowPolicyName.equalsIgnoreCase(policyName) == false){
FSUtils.setStoragePolicy(this.fs, dir, policyName);
}
}else{
FSUtils.setStoragePolicy(this.fs, dir, policyName);
}
if (filePath == null) {
filePath = getUniqueFile(fs, dir);
if (!BloomFilterFactory.isGeneralBloomEnabled(conf)) {
bloomType = BloomType.NONE;
}
}