Chinaunix

标题: 互联网技术新热点之--Hbase存储空间效率如何提升?(获奖名单已公布-2013-5-22) [打印本页]

作者: send_linux    时间: 2013-03-20 10:07
标题: 互联网技术新热点之--Hbase存储空间效率如何提升?(获奖名单已公布-2013-5-22)
获奖名单已公布,详情请看:http://bbs.chinaunix.net/thread-4082547-1-1.html

Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。

但是HDFS也存在着一些问题,比如他的存储空间效率问题和对低延迟访问的支持乏力,特别对中小文件的存储中效率不高,一直被不少HDFS的使用者所诟病,如何解决这个问题,各自采用的方式也不一样。


本期话题:
1、如果您已经在使用HDFS,HDFS对中小文件存储效率不高,您是如何解决的?
2、如果您还在对分布式文件系统进行选型,你理想中的分布式文件系统的功能,特别是存储效率这块,有哪些特色?

活动时间:2013年3月19日-3月31日

邀请嘉宾:
金君:英特尔公司全球研发伙伴关系部软件工程师。2007年7月从南京航空航天大学硕士毕业之后加入英特尔公司从事高性能计算和高吞吐计算相关的软件性能优化和开发,帮助客户更好的应用英特尔软硬件技术,金君具有7年的软件性能优化经验,同时对体系结构和操作系统有较深入认识。
刘歧:ChinaUnix论坛嵌入式版版主,现从事互联网网盘业务底层文件系统的开发和维护工作。

本期奖品:
最佳经验分享奖6名,各奖励价值100元的locklock保温水杯一个;
参与讨论的会员,获得社区积分20分

更多参与,更多好礼!

作者: craaazy123    时间: 2013-03-20 10:36
sofa, 关注ing...
作者: wenhq    时间: 2013-03-20 10:49
1、如果您已经在使用HDFS,HDFS对中小文件存储效率不高,您是如何解决的?
可以用Hadoop自带的一些工具,比如Archive可以高效的将小文件放入HDFS block中。
或者用Sequence File 来将文件map成K/V(K是文件名,V是文件内容)整合成大文件。

2、如果您还在对分布式文件系统进行选型,你理想中的分布式文件系统的功能,特别是存储效率这块,有哪些特色?
理想的文件系统可以满足业务的需要, 提供高可用,还可以为将来的扩展提供一定的基础。这样比较好。比如考虑的因素多数IOPS,delay等。
比如:如果对实时性强,大文件的一些业务。某些文件系统比如NFS,NA就不能满足需求,或者可扩展性不高。
可以考虑HDFS,NDFS。但NDFS的扩展性可能没有HDFS那么高。。没尝试过。。
HDFS一般使用的64MB或者128MB的block结构,跟传统的文件系统block大小不一样。这样可以大大的缩减寻道时间,这样对于读写大文件来说,大大改善了IO的问题。
HDFS还提供冗余的功能,一个block可以有2,3个副本。
如果业务并不要求有大文件的操作的话,那么可以考虑传统的NFS,SAN,NAS.其中SAN比较昂贵。而NAS的传输速率没有SAN那么快,虽然改进的有iscsi技术出现,但毕竟是不通协议的整合,对存储效率有一定改善提高。
作者: hellioncu    时间: 2013-03-20 11:25
不懂,学习
作者: tomer    时间: 2013-03-20 13:23
硬件的故障率太高了。
作者: kdkgod    时间: 2013-03-20 16:10
11年12年的时候项目中用到了hadoop,我参与的就是hdfs那部分,hdfs对小文件读写是真的挺差,特别是写操作本来就慢,当时我们的文件本来就是小文件,到了最后把文件进行了合并。
作者: pitonas    时间: 2013-03-21 08:14
本帖最后由 pitonas 于 2013-03-21 01:15 编辑



学习,学习效率如何提升
作者: frogoscar    时间: 2013-03-21 09:30
关注~~~~~~~~~~~
作者: sc.warlock    时间: 2013-03-21 16:55
我们对HDFS进行过测试,小文件读写确实很差
作者: yuanzh78    时间: 2013-03-22 13:36
1、如果您已经在使用HDFS,HDFS对中小文件存储效率不高,您是如何解决的?
hdfs本来是为了大数据吞吐量而设计,dfs.block.size默认64M,可以根据具体文件大小修改对应的dfs.block.size, 存储一般的文件也可以了,就是当成一个多机负载备份系统来用的,对速度要求不是很高的也够用了。实在是要求效率可以有其他的分布式系统选择,毕竟hdfs就是为大文件存储设计的,当然有实力的公司可以选择根据需要自己定制hadoop。

2、如果您还在对分布式文件系统进行选型,你理想中的分布式文件系统的功能,特别是存储效率这块,有哪些特色?
理想中的分布式文件系统最重要是安装简单,配置方便,主节点坏了可以很方便的快速恢复,hdfs的配置和fdfs比起来觉得还是稍微麻烦。
存储效率上大文件和小文件在技术应该是可以做到兼容效率的,在存储和分块上分为大文件区和小文件区,通过配置文件灵活配置。

作者: Hongqiyaodao    时间: 2013-03-22 13:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: laputa73    时间: 2013-03-22 20:26
就想找一个NFS的简单替代系统.
可以分布式\可靠\高性能\支持高并发 地存取文件/数据.
nfs还是容易挂死
作者: mz198424    时间: 2013-03-23 07:19
1、如果您已经在使用HDFS,HDFS对中小文件存储效率不高,您是如何解决的?
1.将小文件的合并以及小文件的读取改进为Map-Reduce任务,从而提高操作的效率;
2.对SequenceFile中的小文件查找算法进行改进,提高小文件查找效率。

2、如果您还在对分布式文件系统进行选型,你理想中的分布式文件系统的功能,特别是存储效率这块,有哪些特色?
理想的文件系统,个人理解应该是能够通过比较简单的安装和配置达到用户的业务要求,
并且有极强的稳定性,如果某些节点出现出现问题,能够及时的恢复。
作者: renxiao2003    时间: 2013-03-23 22:01
1、如果您已经在使用HDFS,HDFS对中小文件存储效率不高,您是如何解决的?
可以用Hadoop自带的一些工具,比如Archive可以高效的将小文件放入HDFS block中。
或者用Sequence File 来将文件map成K/V(K是文件名,V是文件内容)整合成大文件。

2、如果您还在对分布式文件系统进行选型,你理想中的分布式文件系统的功能,特别是存储效率这块,有哪些特色?
理想的文件系统可以满足业务的需要, 提供高可用,还可以为将来的扩展提供一定的基础。这样比较好。比如考虑的因素多数IOPS,delay等。
比如:如果对实时性强,大文件的一些业务。某些文件系统比如NFS,NA就不能满足需求,或者可扩展性不高。
可以考虑HDFS,NDFS。但NDFS的扩展性可能没有HDFS那么高。。没尝试过。。
HDFS一般使用的64MB或者128MB的block结构,跟传统的文件系统block大小不一样。这样可以大大的缩减寻道时间,这样对于读写大文件来说,大大改善了IO的问题。
HDFS还提供冗余的功能,一个block可以有2,3个副本。
如果业务并不要求有大文件的操作的话,那么可以考虑传统的NFS,SAN,NAS.其中SAN比较昂贵。而NAS的传输速率没有SAN那么快,虽然改进的有iscsi技术出现,但毕竟是不通协议的整合,对存储效率有一定改善提高。
作者: ddd010    时间: 2013-03-24 16:58
很喜欢那个保温杯,可惜没有hdfs相关经验。。

期待各位大牛分享经验。
作者: fyyizu    时间: 2013-03-25 09:40
现在动不动就要求会这会那,先来看看基本知识
作者: xike2002    时间: 2013-03-25 22:22
本帖最后由 xike2002 于 2013-03-25 22:29 编辑

1、如果您已经在使用HDFS,HDFS对中小文件存储效率不高,您是如何解决的?
答:首先谈谈HDFS的架构模式。HDFS采用主从式架构设计模式(master/slavearchitecture),一个名称节点(NameNode)和若干数据节点(DataNode)构成HDFS集群。HDFS的这种单名称节点的设计极大地简化了文件系统的结构,然而也因此引发了HDFS的小文件存储效率低的问题。因为HDFS中的每个目录和文件的元数据信息都存放在名称节点的内存中,如果系统中存在大量的小文件(指那些比HDFS数据块(默认为64MB)d,得多的文件),则无疑会降低整个存储系统的存储效率和存储能力。
    解决基于HDFS的存储系统中小文件存储效率问题的主流思想是将小文件合并或组合为大文件,目前主要的方法分为2种,一种是利用Hadoop归档(Hadoop archive,HAR)等技术实现小文件合并的方法,另一种则是针对具体的应用而提出的文件组合方法。

2、如果您还在对分布式文件系统进行选型,你理想中的分布式文件系统的功能,特别是存储效率这块,有哪些特色?
答:目前要是考虑到存储效率这块的话,我觉得大家可以考虑Lustre分布式存储技术和glusterfs分布式存储技术等等。目前这两项技术都是很不错的选择,而且很多开发者都在使用。
下面是几种常用分布式存储技术的比较。


作者: yezj2004    时间: 2013-03-25 23:53
祝楼主快乐,大家一齐讨论!
作者: gnah    时间: 2013-03-26 10:04
本帖最后由 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暂时还没有接触.

作者: shreychen    时间: 2013-03-26 13:53
关注,最近接手hadoop/hbase运维,遇到各种问题
作者: 樱木的追风者    时间: 2013-03-26 20:49
小文件能不能打包起来呢?
作者: yasin635    时间: 2013-03-27 09:09
关注ing........
作者: 深蓝苹果    时间: 2013-03-27 12:50
1、如果您已经在使用HDFS,HDFS对中小文件存储效率不高,您是如何解决的?
- 以64MB为文件块
    - 一次提交数少于64MB的,打包成一个文件块存储
    - 一次提交数多于64MB的,分割成多个文件块,存储在不同分区中,以平缓读写的峰值压力

2、如果您还在对分布式文件系统进行选型,你理想中的分布式文件系统的功能,特别是存储效率这块,有哪些特色?
- 效率和设备成本、维护成本达到一个平衡
- 能根据存储文件特点进行优化配置,适应不同存储场景
作者: a7pufap    时间: 2013-03-28 12:21
關注,這個跟NAZFS有可比的數據還有疑忌。我參詳一下數據參數,在做到服,我是做數據遷移的在此次私有數據架構主要在
教育領域和金融機構的數據傳輸配置中有一定的前瞻性。
謝謝提鈎以下可以作餐開的架構剽襲說明會。

請出來調節以下:人和人坐用名,沒有Marth和物連de技術保值!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2