中风拓 发表于 2017-3-2 15:36 假设复制因子是3,如果put数据的时候 在集群内机器提交的话,其写流程是:1. 在本机器内首先存储一个副本 2. 在离本机机架最近的机架的一个节点上存储第二个副本 3. 本机架的其他节点存储第三个副本 在集群外提交的话,其写流程: 1. 找集群内CPU和内存最充足的机器写第一个副本(比如说节点A) 2. 找离节点A最近的机架的一个节点上存储第二个副本 3.找节点A机架内另一节点存第三个副本 另外,其中如何知道哪个机架离自己近,哪个节点离自己远呢? 答案是需要配置机架感知,配置机架与IP的映射关系,namenode会根据机架拓扑图算出距离。 |
补充下: SecondaryNameNode作用最主要是减轻editlog的大小,加快namenode启动速度,备份是另一功能。 |
|
w517424787 发表于 2017-3-3 14:24 还不懂…… |
中风拓 发表于 2017-3-2 15:36 我感觉数据都已经在集群的DataNode上,就不需要再copy到其它节点上啊,本来就有3份! |
请问楼主,在写操作中的原理部分,为什么要分为两种?client为DataNode和client不为DataNode两部分呢? |
感谢楼主的分享!学习了 |
多谢分享 |