对Nutch2.1抽象存储层的一些看法
Nutch2.1通过gora对存储层进行了扩展,可以选择使用HBase、Accumulo、Cassandra 、MySQL 、DataFileAvroStore、AvroStore中任何一种来存储数据,但其中一些并不成熟。在我的反复测试中发现,整体来说,Nutch2.1比起Nutch1.6的性能要差得多,最重要的是不能长期稳定运行。Nutch1.6使用Hadoop Distributed File System (HDFS)来作为存储,稳定可靠。下面分别说说每一种存储方式的情况:
HBase(column stores),支持输入分割,以Region为最小分割单位。随着数据规模的增大,并行处理的优势就体现出来了,所以适合大数据应用。不过对HBase集群的维护是一大问题,比HDFS复杂得多,内存消耗也很恐怖。
Accumulo(key/value store )抓取3轮之后就异常退出,提示UnsupportedOperationException。
Cassandra(column stores),需要注意的是/etc/hosts中localhost不能映射到127.0.0.1。Cassandra最大的问题在于不支持输入分割,就算数据规模再大也只有一个map,完全失去了并行性。
MySQL (RDBMS),只有一台服务器作为数据源,那么随着数据规模的增大,MySQL 要怎么面对呢?所以MySQL对于小规模的简单的垂直搜索之类的应用比较合适。
DataFileAvroStore(data serialization system ),Injection job throws NullPointerException,见https://issues.apache.org/jira/browse/NUTCH-1477 。
AvroStore(data serialization system ),和DataFileAvroStore同样的问题。
从上面的分析来看,目前gora还亟待改进。对于追求性能极致的朋友来说,nutch2.1还不稳定,建议使用nutch1.6,利用HDFS和MapReduce的数据本地化及天然的并行性,可以优化到非常快的速度。
HBase(column stores),支持输入分割,以Region为最小分割单位。随着数据规模的增大,并行处理的优势就体现出来了,所以适合大数据应用。不过对HBase集群的维护是一大问题,比HDFS复杂得多,内存消耗也很恐怖。
Accumulo(key/value store )抓取3轮之后就异常退出,提示UnsupportedOperationException。
Cassandra(column stores),需要注意的是/etc/hosts中localhost不能映射到127.0.0.1。Cassandra最大的问题在于不支持输入分割,就算数据规模再大也只有一个map,完全失去了并行性。
MySQL (RDBMS),只有一台服务器作为数据源,那么随着数据规模的增大,MySQL 要怎么面对呢?所以MySQL对于小规模的简单的垂直搜索之类的应用比较合适。
DataFileAvroStore(data serialization system ),Injection job throws NullPointerException,见https://issues.apache.org/jira/browse/NUTCH-1477 。
AvroStore(data serialization system ),和DataFileAvroStore同样的问题。
从上面的分析来看,目前gora还亟待改进。对于追求性能极致的朋友来说,nutch2.1还不稳定,建议使用nutch1.6,利用HDFS和MapReduce的数据本地化及天然的并行性,可以优化到非常快的速度。
相关推荐
SUNDRAGON 2020-07-23
zhangxiaocc 2020-07-18
韩学敏 2020-01-07
累积技术沉淀经验 2020-01-07
CassandraTorres 2020-01-03
累积技术沉淀经验 2019-12-12
akcsdno 2019-12-06
那年夏天0 2019-12-06
数据库起来 2019-12-06
dqk 2019-11-12
zffj 2019-10-20
风一样的小宝 2019-11-01
sunfragrence 2017-08-11
wangtua 2018-02-01
gyunling 2019-09-08
newzhhsh 2019-03-27
dqk 2012-07-18
maggie 2016-06-06
李春春 2015-09-21