适合爬虫下来的网页储存的分布式文件系统有哪些

一般来说,网页不适合用分布式文件系统(DFS)来存储。DFS一般被设计用来存大文件(至少是MB级别),而网页一般而言,平均大小为10~20K.单单把数据(网页)抓下来是没用的,更重要的是各种分析、处理,这一般需要数据全局有序(例如同一站点的数据会存储在一块,假设抓下来的数据以url为“主键”存储,网页的内容是其中某一列,其它列根据具体的需求来)。互联网是不断变化的,spider需要不断地在网上爬行抓取最新的内容,然后将新数据写回数据库。如果对时效性要求不高,可以有一个base库,spider抓取的数据在内存排序后dump成小的patch,周期性地merge大、小库。这种方法怎么看都显得很挫,不是专业的搜索引擎。据我所知,连百度都已经不这么干了。如果对时效性要求高,有一个解决方案是实现/使用一个类似 bigtable 那样的分布式表格存储系统,整个spider以 bigtable 存储为中心。 bigtable的模型很适合搜索引擎的存储需求:全局有序、(负载均衡、热点分裂)、free schema、强一致、列存储、多版本。。。自己实现bigtable是非常困难的,可以考虑hbase。对于第2个问题,并没有看懂(这块也知之甚少)。。。
■网友
首先如果要完整,你需要三个系统,爬虫系统,数据处理系统,在线查询系统(目前你看好像用不上)爬虫系统自己需要一个分布式存储系统,目的是用来存储中间数据,比如可以用来去重等等。数据处理系统需要一个存储系统,用来存放处理国的数据,处理数据就两种模式,一种就是map/reduce式的批处理,另一种就是实时处理。实时处理时效性高点,难度大点。因为爬虫抓取的数据种类比较多,最好选择schema free类型的分布式数据库。对于系统的选择,如果是自己搭建系统,可以选取hbase,leveldb等,但leveldb是单机的,你可以做个二次开发啥的搞成分布式的,或者仅仅用它的格式,自己写引擎层。如果不想自己搭建,想用云的话,对应的是阿里云的OTS:开放结构化数据服务OTS_海量数据存储
■网友
百度是用tera+bfs存的GitHub - baidu/bfs: The Baidu File System.GitHub - baidu/tera: A distributed, elastic, structured database.
■网友
主要看楼主打算如何使用这些爬下下来的数据。如果是离线计算,MR肯定是首选。不过MR写起来比较费事,可以把基本特征先抽出来,存到hive里,后面用hive sql分析。


    推荐阅读