以下是在Katta官网了解时候的简陋学习笔记,之后看到katta--索引的管理者比我翻译的好多了,嘻嘻
Katta是一个可扩展的、故障容错的、分布式实施访问的数据存储。
Katta可用于大量、重复、索引的碎片,以满足高负荷和巨大的数据集。这些索引可以是不同的类型。当前该实现在Lucene和Hadoop mapfiles
Katta is a distributed application running on many commodity hardware servers very similar to Hadoop MapReduce, Hadoop DFS, HBase, Bigtable or Hypertable
master负责管理节点和索引分片。节点为索引分片服务。客户端可以去所有节点搜索并合并结果集。目录/分片种类可以不同,取决于节点服务器的内容服务器
每个节点负责一个内容服务器。现在提供Lucene indices和 Hadoop mapfiles. 你可以实现自己的
索引文件夹由子索引分片文件夹组成。如lucene的索引分片能用indexwriter创造,仅仅简单把lucene的索引集合起来。所以katta的目录能被mapreduce制造。你可以构造自己想要的索引
- 搜索客户端监视目录文件夹,会被通知更新.通过读取“/shard-to-nodes” 文件夹,获知哪些node在服务新的索引分片
客户端要和所有节点通信.使用hadoop RPC(很快且比较容易用java实现同步).对搜索请求,发送给所有需要去找索引分片搜索的nodes.请求是多线程处理的,而且hadoop RPC保持TCP/IP连接
katta先把分片复制到node的硬盘驱动器。映射的时候是hdfs地址,也支持S3。为了不减慢搜索,为分片部署提供节流机制。
(意思是在第一算得总数,第二轮的时候各个node可以各自计算各自搜素结果的权重)
IMapFileClient.java.java for querying hadoop mapfiles (Client.java).