我正在尝试通过预处理所有结果来优化搜索引擎的性能。我们有大约 50,000 个搜索词。我打算事先搜索这 50k 个术语并将其保存在内存中(memcached/redis)。在我的情况下,搜索所有 50k 个术语需要超过一天的时间,因为我们进行了深度语义搜索。所以我打算将搜索(预处理)分布在几个节点上。我正在考虑使用hadoop。我的输入大小非常小。即使总搜索词超过 50k,也可能不到 1MB。但是搜索每个术语需要花费最少的时间,即更多面向计算而不是面向数据。所以我想知道是否应该使用 Hadoop 或构建自己的分布式系统。我记得读到主要在输入非常大的情况下使用 hadoop。请建议我如何去做。
我读了hadoop以块大小读取数据。即每个jvm/mapper 64mb。是否可以使其成为行数而不是块大小。示例:每个映射器获得 1000 行而不是 64mb。有没有可能做到这一点。