看源码,老实说我没什么很好的方法。所以,只能静下心来看,一步一步的看。
我认为每个程序都有个门,要想进入,首先得把这个门找到,而我找到的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 是一个分布式搜索引擎解决方案.
云中的Lucene。
卡塔代码 code-katta这个项目是异步的hbase。
多斯蒂·卡塔(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 ( ...
Hive及Hadoop群11.1 Hive11.1.1 安装与配置Hive11.1.2 查询的示例11.1.3 深入HiveQL11.1.4 Hive小结11.2 其他Hadoop 相关的部分11.2.1 HBase11.2.2 ZooKeeper11.2.3 Cascading11.2.4 Cloudera11.2.5 Katta11.2.6 ...
《Hadoop实战》作为云计算所青睐的分布式架构,...12.4 搭建面向企业查询的分析系统——IBM的ES2 项目 12.4.1 ES2 系统结构 12.4.2 ES2 爬虫 12.4.3 ES2 分析 12.4.4 小结 12.4.5 参考文献附录A HDFS文件命令
第一部分 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
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构建hadoop运算坚实...