开源分布式存储系统katta 介绍
以下是在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
Overviewmaster负责管理节点和索引分片。节点为索引分片服务。客户端可以去所有节点搜索并合并结果集。目录/分片种类可以不同,取决于节点服务器的内容服务器
Content Server每个节点负责一个内容服务器。现在提供Lucene indices和 Hadoop mapfiles. 你可以实现自己的
数据结构索引文件夹由子索引分片文件夹组成。如lucene的索引分片能用indexwriter创造,仅仅简单把lucene的索引集合起来。所以katta的目录能被mapreduce制造。你可以构造自己想要的索引
主节点通信katta通过zk实现通信,把信息写在虚拟文件系统里。节点启动时写入临时文件/node/live- 搜索客户端监视目录文件夹,会被通知更新.通过读取“/shard-to-nodes” 文件夹,获知哪些node在服务新的索引分片
客户端节点通信客户端要和所有节点通信.使用hadoop RPC(很快且比较容易用java实现同步).对搜索请求,发送给所有需要去找索引分片搜索的nodes.请求是多线程处理的,而且hadoop RPC保持TCP/IP连接
给node装载分片katta先把分片复制到node的硬盘驱动器。映射的时候是hdfs地址,也支持S3。为了不减慢搜索,为分片部署提供节流机制。
为lucene的评分实现分布式由于term在分布式情况下在每个分片里不平均,所以每次请求进行两轮:(意思是在第一算得总数,第二轮的时候各个node可以各自计算各自搜素结果的权重)
整合DeployClient.java for deploying and un-deploying of indices.IMapFileClient.java.java for querying hadoop mapfiles (Client.java).
