介绍
Gora是一个开源的ORM框架,主要为大数据提供内存数据模型与数据的持久化。目前Gora支持对于列数据、key-value数据,文档数据与RDBMS数据的存储,还支持使用Apache Hadoop来对对大数据进行分析
特点
虽然目前市面上有很多不错的关系数据库的ORM框架,但是基于数据模型的框架如JDO还是有一些不足,如对于列数据模型的存储与持久化。Gora正好弥补了这个问题,它能使用户很容易对大数据时行 内存建模与持久化,而且支持Hadoop来对大数据进行分析。
Gora就是一个大数据的表示与持久化框架,它有如下特点
-
数据持久化:它可以对列数据进行持久化,如HBase,Cassandra,Hypertable; key-value数据进行持久化,如Voldermort,Redis等,SQL数据库进行持久化,如MySQL,HSQLDB,也可以对文件进行HDFS存储 。
-
数据访问:可以使用Java API对数据进行轻松的访问
-
索引:可以持久化对象到Lucene或者Solr中去,可以使用Gora API来进行查询
-
分析:可以使用Apache Pig,Hive,cascading来对数据进行分析
-
MR的支持:原生支持Hadoop的MR框架,这个已经被用在Nutch 2.0上了
-
支持使用Pig,lucene,hive等针对数据进行持久化,索引和分析工作
更多信息请参考:http://gora.apache.org
缺点
目前除Nutch2外,在其他开源产品中使用Gora的好像没有看到
Nutch2系列通过gora对存储层进行了扩展,可以选择使用HBase、Accumulo、Cassandra 、MySQL 、DataFileAvroStore、AvroStore中任何一种来存储数据,但其中一些并不成熟。
目前gora还亟待改进。对于追求性能极致的朋友来说,nutch2.x还不稳定,建议使用nutch1.x,利用HDFS和MapReduce的数据本地化及天然的并行性,可以优化到非常快的速度。