
Java
星尘之子
心之所向,素履以往;生如逆旅,一苇以航
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Namenode启动流程优化跟踪
主:14617加载fsimage是单线程的过程分区中创建子分区,每个子分区一个线程测试:316M inodes 35G磁盘数据Threads 1 2 3 4 --------------------------------inodes 448 290 226 189 inode_dir 326 211 170 161 Total 927 651 535 488 (MD5 calculation ab原创 2021-03-21 22:37:20 · 154 阅读 · 0 评论 -
2021-03-11
2.5 watcher和callbackzk客户端和zk集群之间会用到watcher机制,watcher的作用是监控连接变化和节点变化,在这个系统中有两个地方会注册watchernew Zookeeper()构造zk客户端对象时注册的watcher:不是一次性的,只当连接状态变化时被触发zkclient.exists()方法中传入的watcher:这个方法在joinElection尝试创建锁节点或锁节点数据变化后会在monitorActiveStatus()方法中被调用,因为这个watcher是一次原创 2021-03-11 20:23:41 · 113 阅读 · 0 评论 -
2021-03-11
3 切换耗时研究这里的切换耗时指发生HA切换,hadoop不能正常提供服务的时间。3.1 kill ANN切换时间服务不可用起始时间(ANN被kill时):2021-03-09 15:47:18,732 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: RECEIVED SIGNAL 15: SIGTERM切换成功时间(SNN成功切换为ANN时):2021-03-09 15:47:29,661 INFO org.apache.hadoo原创 2021-03-11 20:22:48 · 240 阅读 · 0 评论 -
2021-03-10
1.8 删除/hadoop-ha/hdfsHACluser节点及其子节点现象:两个Namenode都为Standby状态解释:两个Namenode被kill后,健康状态变为SERVICE_NOT_RESPONDING,运行quitElection方法,删除znode,销毁zookeeper客户端对象两个Namenode重新上线后,HealthMonitor检测到健康状态为HEALTHY,会调用joinElection方法,尝试创建/hadoop-ha/hdfsHACluster/ActiveSta原创 2021-03-10 20:33:05 · 144 阅读 · 0 评论 -
2021-03-10
zk客户端会产生两种类型的watchernew Zookeeper()构造zk客户端对象时注册的watcher:不是一次性的,只当连接状态变化时被触发zkclient.exists(),监控锁节点方法注册的watcher:一次性,当监控节点增(create)、删(delete)、改(set)时被触发3类线程主线程:在启动所有服务后开始循环等待HealthMonitor线程:定期检查NN服务状态和健康状况zk客户端线程:监控zookeeper上结点的状态,发生变化时,回调ZKFailover原创 2021-03-10 20:32:10 · 206 阅读 · 0 评论 -
RPC服务端Server
源头:1 NameNode的initialize方法中会构造NameNodeRpcServer对象rpcServer,在NameNodeRpcServer构造方法中会构造Server对象。即第1步会调用Server的构造方法。2 NameNode的initialize方法中会调用startCommonService方法,该方法中会调用rpcServer.start(),rpcServer.start()方法又会调用第1步构造的Server对象的start方法。即第2步会调用Server的start方法。原创 2020-11-13 19:08:00 · 1439 阅读 · 0 评论 -
HDFS RPC客户端处理流程详解
源头:在ProtobufRpcEngine.Invoker的invoke()方法中会调用client.call()方法。将RPC请求信息封装成一个Call对象创建Connection对象管理客户端和服务端的Socket连接Call对象会放入Connection.calls字段中Connection对象会放入Client.connections字段中以供复用。通过Connection.setupIOstreams()方法建立客户端与服务端的Socket的连接setup原创 2020-11-13 19:03:56 · 492 阅读 · 0 评论 -
Hadoop RPC详解
文章目录1 定义RPC协议2 实现RPC协议2.1 真实现(服务端)2.2 假实现(客户端)3 client端获得代理对象3.1 NonHA proxy3.2 (todo)HA proxy4 server端启动监听5 总结5 总结 Hadoop中使用RPC的场景很多,比如client和Namenode之间,Namenode和Datanode之间,Namenode和Namenode之间等等。本文只讨论client和Namenode之间的RPC机制,把这一种搞懂了,其它几种也迎刃而解,因为都是同样的道理。H原创 2020-11-07 22:56:55 · 560 阅读 · 0 评论 -
volatile关键字小记
volatile关键字小记 这两天在看FSEditLog类的时候遇到了volatile关键字和ThreadLocal变量,对这部分的知识已经有点模糊,故记此一篇已备忘,本篇介绍volatile,有关ThreadLocal的之后再整理。 其实java并发的问题根因是两个,一是高速缓存,二是乱序执行。下面简单介绍一下这两个根因。 高速缓存其实描述的是物理机内存的模型,为了提高速度,每个处理器都对应一个高速缓存,而所有的高速缓存都共享一个主内存区域,因此主内存和高速缓存之间就有一个一致性的问题。对应到原创 2020-10-31 22:07:45 · 109 阅读 · 0 评论