- 论坛徽章:
- 4
|
本帖最后由 gnah 于 2013-03-26 10:07 编辑
1、如果您已经在使用HDFS,HDFS对中小文件存储效率不高,您是如何解决的?
分为几个方面
系统调优:64位linux , 使用ram, 不用swap
jvm调优:一般hdfs需要的内存都比较大,运行在jvm上,jvm的调优就显得尤为重要了,这个和今天的主题有些不一致了就不详细说了,基本上共同的选项就-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing 等等,其他选项就看具体硬件配置了.
HDFS: 设置dfs.client.read.shortcircuit=true,读取本地数据是不需要经过RegionServer绕一圈
小文件: 这个其实不是HDFS 64M数据块的初衷(当然也可以改,但改小了以后大文件效率又低了),不过官方也出了一些办法,归纳起来就是对小文件使用归档(如果使用了MR也可以组合),批量写入,批量读取,设置 AutoFlush=false等办法提高效率
缓存: 经常使用的数据使用Block Cache
调度器Zookeeper的优化: (集群比较大,调度成为瓶颈时)
我所知道的就这些了,肯定不完整,大家互相学习共同进步!
2、如果您还在对分布式文件系统进行选型,你理想中的分布式文件系统的功能,特别是存储效率这块,有哪些特色?
由于我们使用了MR, hbase等 ,HDFS几乎成了唯一的选择,刚开始也考虑过GridFS,不甚理想,其他的DFS暂时还没有接触.
|
|