namenode需要监听和收集各个datanode的信息,需要在某个端口监听,然后等待datanode发送一些消息过来,同时这个端口也负责收集那些注册到namenode来的datanode的信息(心跳信息中带有其他元数据信息,而不是简单的心跳而已)
由
dfs.namenode.handler.count
这个参数指定namenode机器上有多少个线程来处理datanode过来的请求,这里没有使用线程池技术,而是直接使用new Thread的方法,生成了count个线程。
在RPC监听主程序中使用Proactor网络模式,利用java nio增大并发处理量。
主程序中将接收到的请求构造为Call对象放入到BlockingQueue<Call>队列中,然后由之前生成的handle线程来取出并调用相应的处理类处理。
hadoop里针对网络处理使用的模式都很经典,故在此给出一些模式的参考:
Reactor http://en.wikipedia.org/wiki/Reactor_pattern
Proactor http://en.wikipedia.org/wiki/Proactor_pattern
本想贴几个图来说明这个模式的,发现只有图貌似大家不好理解,故找了几个网上比较好的文章给大家,让大家知道Proactor模式的含义:
http://www.javaworld.com.tw/jute/post/view?bid=44&id=17733&sty=1&tpg=8&age=0
http://cpp.ezbty.org//myfiles/boost/doc/html/boost_asio/overview/core/async.html
其实这个模式的定义以及起源都是源自一本书(POSA2)
Pattern Oriented Software Architecture,
Volume 2
分享到:
相关推荐
NameNode职责
Hadoop Namenode性能诊断及优化
hdfs的namenode的元数据管理机制,简要画出了元数据管理的流程分析
NameNode及SecondaryNameNode分析
NULL 博文链接:https://snv.iteye.com/blog/1884565
未知原因导致namenode 的fsimage等文件丢失,namenode重启失败的参考解决
NameNode源码分析(RPC是基础) DataNode源码分析 FileSystem源码分析(如何与NameNode通信ClientProtocol) JobTracker源码分析 TaskTracker源码分析 网站日志分析项目(这个项目分析可以让你更加掌握好所学的知识...
hadoop NameNode 源码解析
RPC(RemoteProcedureCall)——远程过程调用,它是一种通过...具体步骤:处理Call调用负责处理Call队列中的每个调用请求,由Handler线程完成:交互过程如下图所示:图RPC交互过程图这里还需要提到的是,在namenode的高
大家都知道HDFS的架构由NameNode,SecondaryNameNode和DataNodes组成,其源码类图如下图所示:正如上图所示,NameNode和DataNode继承了很多的protocol用于彼此间的通信,其实nameNode还实现了...实现了ClientProtocol...
王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第九讲Hadoop图文训练课程:剖析NameNode和Secondary NameNode的工作机制和流程. 此教程来自于王家林免费发布的3本Hadoop教程:云计算分布式大数据...
今天小编就为大家分享一篇关于Hadoop之NameNode Federation图文详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
Hadoop Namenode恢复
■ 用于来自客户端和DataNode 的RPC 调用的线程(心跳和元数据操作) ■ CM默认是30(非CM默认值为10) ■ 推荐:集群节点数x 20 的自然对数 ■ 设置太低的症状:DataNode 日志中的“连接被拒绝” 消息是由于...
详细讲解了Hdfs中NameNode节点的配置,备份和恢复,以及secondNamenode的配置
(1)第一次启动 NameNode 格式化后,创建 fsimage 和 edits 文件 (2)客户端对元数据进行增删改的请求 (3)NameNode 记录操作
最新的hdfs namenode主备安装文档,详细,命令只需要copy执行即可
第5章 NameNode和SecondaryNameNode(面试开发重点) 5.1 NN和2NN工作机制 思考:NameNode中的元数据是存储在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应...
9001 dfs.namenode.rpc-address,DataNode会连接这个端口 50070 dfs.namenode.http-address 50470 dfs.namenode.https-address 50100 dfs.namenode.backup.address 50105 dfs.namenode.backup.http-address 50090 ...