我需要在CSV格式文件中搜索超过PB的数据。使用LUCENE进行索引后,索引文件的大小比原始文件的大。是否可以减少索引文件大小???如何在HADOOP中分发LUCENE索引文件以及如何在搜索环境中使用?或者是否有必要,我应该使用solr来分发LUCENE指数???我的要求是对PB级文件进行即时搜索....
答案 0 :(得分:4)
Hadoop和Map Reduce基于批处理模型。你不会从中获得即时响应速度,这不是该工具的设计目的。您可以使用Hadoop加快索引编制速度,但它不会像您想要的那样进行查询。
看一下Lucandra,这是一个基于Cassandra的Lucene后端。 Cassandra是另一个在Facebook上开发的分布式数据存储,如果我记得的话,它设计的目的是为了在面向查询的访问模型中获得比hadoop更快的访问时间。
答案 1 :(得分:1)
任何体面的现成搜索引擎(如Lucene)应该能够提供超过您拥有的数据大小的搜索功能。您可能需要预先做一些工作来设计索引并配置搜索的工作方式,但这只是配置。
您不会获得即时结果,但您可以获得非常快速的结果。速度可能取决于你如何设置它以及你运行的硬件类型。
您提到索引大于原始数据。这是可以预料的。索引通常包括某种形式的非规范化。索引的大小通常与速度有关;提前对数据进行切片和切块的方式越多,查找引用的速度就越快。
最后你提到分发索引,这几乎肯定是不你想要做的事情。分发许多PB的数据的实用性非常令人生畏。您可能想要的是让索引位于某个大型胖计算机上,并为数据提供搜索服务(将查询带入数据,不要将数据带到查询中)。
答案 2 :(得分:0)
如果您想避免更改实现,则应将lucene索引分解为10个,20个甚至更多索引并并行查询。它适用于我的情况(我创建了8个索引),我有80 GB的数据,我需要实现搜索,它适用于开发人员机器(Intel Duo Core,3GB RAM)。