看源码,老实说我没什么很好的方法。所以,只能静下心来看,一步一步的看。
我认为每个程序都有个门,要想进入,首先得把这个门找到,而我找到的katta的门是Katta.java
Katta.java中有个main方法,接收你输入的命令(String[] args)
1.startNode
2.startMaster
3.version
4.zk
5.search
6.addIndex
7.removeIndex
8.mergeIndexes
9.listIndexes
10.listNodes
11.showStructure
12.check
13.listErrors
14.redeployIndex
如果想要知道有多少个节点已经连接了,那么输入listIndexes
main方法先判断是否有值输入,如果没有调用printUsageAndExit(),给出输入的格式并退出程序。
现在当然是有输入咯,然后就是要Katta显示所有节点了,它调用Katta的构造函数
katta = new Katta();
Katta的构造函数,它调用了ZkConfiguration ,ZKClient的构造函数。
public Katta() throws KattaException {
final ZkConfiguration configuration = new ZkConfiguration();
_zkClient = new ZKClient(configuration);
_zkClient.start(10000);
}
ZkConfiguration 它继承了KattaConfiguration类,KattaConfiguration类是一个配置类,它读取katta.zk.properties
文件,生成Properties,方便下一步的读取操作。
ZKClient它实现了Zookeeper的Watcher,Watcher是一个事件处理程序的接口。
_zkClient = new ZKClient(configuration);
在ZKClient的构造函数中,把configuration作为参数传了进去,然后读取katta.zk.properties这个文件的
zookeeper.servers,zookeeper.timeout和zookeeper.clientPort
_zkClient.start(10000);
打开一个Zookeeper的客户端,并等待Zookeeper服务器的连接。
使用同步的机制, getEventLock().lock();
调用ZooKeeper的构造函数:
ZooKeeper _zk = new ZooKeeper(_servers, _timeOut, this);
把从katta.zk.properties这个文件中读取的服务器名,超时时间和Zookeeper它本身作为参数传入这个构造函数。
在Zookeeper的构造函数中又调用了ClientCnxn 的构造函数
ClientCnxn cnxn = new ClientCnxn(host, sessionTimeout, this);
ClientCnxn 为客户端管理socket的i/o,并保持一份可用的服务器连接。
在ClientCnxn的构造函数中调用了两个线程,SendThread和EventThread
SendThread 这个类服务那些即将离任的请求队列。
EventThread 这个类服务于返回的信息事件。
当ZooKeeper的状态为CONNECTED时说明已经连接。
katta实例调用它的listNodes()方法以显示节点
在listNodes()方法中,调用ZKClient的getKnownNodes()方法,返回一个List对象。
NodeMetaData nodeMetaData = new NodeMetaData();
Katta把节点信息封装到NodeMetaData 对象中。
Table table = new Table();
table.addRow(nodeMetaData.getName(), nodeMetaData.getStartTimeAsDate(), nodeState.name());
把需要显示的数据封装到Katta的Table中
System.out.println(table.toString());
显示出来。
转自:http://zkl-1987.iteye.com/blog/366974
分享到:
相关推荐
《Katta:分布式搜索引擎解决方案详解》 Katta,作为一个开源的分布式搜索引擎解决方案,为处理海量数据的搜索需求提供了高效、可扩展的平台。在本文中,我们将深入探讨Katta的核心特性、工作原理以及如何在实际...
开发者可以通过研究源码,深入了解Katta的实现细节,如索引分片策略、查询优化机制等,以便更好地利用Katta解决实际问题。同时,社区提供的文档和示例可以帮助开发者快速上手,搭建和配置自己的Katta集群。 总之,...
【code-katta: 卡塔代码】 `code-katta` 是一个开源项目,专注于异步HBase操作。在深入探讨这个项目之前,我们先来理解HBase和异步编程的基本概念。 **HBase** 是一个分布式、列式存储的NoSQL数据库,基于Google的...
多斯蒂·卡塔(Dosti Katta) 一种社交媒体应用程序,人们可以结识来自世界各地的数百万新朋友,并与他们建立联系以结交新朋友 :men_holding_hands: 网站网址 特征 - Authentication - Profile Viewing - Set ...
Katta 是一个灵感来源于 Hive 和 HBase 运行机制的大数据工具。 索引的导入机制类似 Hive 对表数据的管理; 基于 Index 和 Shard 机制又非常类似于 Hbase 对 Table 和 Region 的管理; 内部 ZooKeeper 的选举机制,...
覆盆子用于处理 NGS 大数据的快速并行质量控制工具作者:Mohan AVSK Katta ( 、Aamir W Khan ( )、Dadakhalandar Doddamani ( ) 和 Rajeev K Varshney ( ) 基因组学卓越中心ICRISAT,海得拉巴,印度关于处理数百或数...
HEKA Patchmaster进口商 将 HEKA Patchmaster 文件... 核心功能基于 sigTool ( https://doi.org/10.1016/j.neuron.2015.10.042和https://github.com/irondukepublishing/sigTOOL ) 的 HEKA 导入器,并从 Sammy Katta ( ...
除了 Lucene 和 ES,还有 Solr、HadoopContrib、Katta 等全文检索工具。每种工具都有其特点和优缺,选择合适的工具取决于项目的需求和实际情况。 四、Bulk 一次最大处理多少数据量? Bulk 会把将要处理的数据载入...
它提供了丰富的文本分析、索引和查询功能,为开发者提供了强大的文本搜索能力。基于Lucene的开源搜索引擎则是在Lucene基础上进行了扩展和封装,提供了更高级别的功能和服务,适用于各种场景和需求。 1. Apache Solr...
第一部分 Hadoop——一种分布式...23612.4 搭建面向企业查询的分析系统——IBM的ES2项目 23812.4.1 ES2系统结构 24012.4.2 ES2爬虫 24112.4.3 ES2分析 24212.4.4 小结 24912.4.5 参考文献 250附录A HDFS文件命令 251