提到HDFS就会想到机架感知,那么机架感知你真的知道是什么吗?

news/2024/12/3 7:42:07/

写在前面

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见1000个问题搞定大数据技术体系

解答

机架感知到底是什么?

通常大型 Hadoop集群是以机架的形式来组织的,同一个机架上的不同节点间的网络状况比不同机架之间的更为理想, NameNode 设法将数据块副本保存在不同的机架上以提高容错性。

HDFS不能够自动判断集群中各个 DataNode 的网络拓扑情况, Hadoop允许集群的管理员通过配置 dfs.network.script 参数来确定节点所处的机架,配置文件提供了ip 到 rackid 的翻译。

NameNode 通过这个配置知道集群中各个 DataNode 机器的 rackid。

如果 topology.script.file.name没有设定,则每个 ip 都会被翻译成 /default-rack。

举例说明

机架感知如图所示

在这里插入图片描述

图中 D 和 R 是交换机,H 是 DataNode。

则 H1 的 rackid=/DI/R1/H1,有了 rackid 信息(这些 racked信息可以通过 topology.script.file.name 配置)就可以计算出任意两台 DataNode 之间的距离。

distance(/D1/R1/H1,/D1/R1/H1)=0 # 相同的 DataNode 
distance(/D1/R1/H1,/D1/R1/H2)=2 # 同 rack 下的不同 DataNode 
distance(/D1/R1/H1,/D1/R1/H4)=4 # 同 IDC 下的不同 DataNode 
distance(/D1/R1/H1,/D1/R1/H7)=6 # 不同 IDC 下的 DataNode 

说明

  1. 当没有配置机架信息时,所有的机器 Hadoop都在同一个默认的机架下,名为“/default-rack”,这种情况的任何一台 DataNode 机器,不管物理上是否属于同一个机架,都会被认为是在同一个机架下。
  2. 一旦配置 topology.script.file.name,就按照网络拓扑结构来寻找 DataNode: topology.script.file.name 这个配置选项的 value指定为一个可执行程序,通常为一个脚本。

http://www.ppmy.cn/news/521551.html

相关文章

机架感知配置

配置机架感知 编写Python脚本“RackAware.py” 并拷贝到其他节点的对应路径下 #!/usr/bin/python #-*-coding:UTF-8 -*- import sysrack {"192.168.10.140":"DB19_SW001","192.168.10.141":"DB19_SW002","192.168.10.142&qu…

Hadoop之机架感知

在分布式集群下,由于机架的的槽位和交换机网口数量的限制,使得集群上的机器不得不跨越机架,通常一个大型的集群会跨越很多机架。一般情况机架内机器的通讯会快于跨机架机器之间的通讯,并且机架之间机器的网络通信通常受到上层交换…

【数据库】面对数据量很大的情况下,分页查询有什么优化方案?

之前遇到最大的数据库都很小,但是最近遇到了千万级数据,当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。 对于数据库分页查询&#x…

高级数据结构——红黑树

目录 1. 红黑树的概念 2. 红黑树的性质 3. 红黑树 6. 红黑树的验证 7. 红黑树的删除 8. 红黑树与AVL数的比较 9. 红黑树的应用 10. 完整代码 10.1 RBTree.h 10.2 test.cpp 1. 红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存…

51+l298n+步进电机

目标&#xff1a;51298n电机转一圈按键检测 可以完整带动298n模块&#xff0c; //********************************************* //Developer:Saber //Project:Motor Control //Time:2018/4/18 //********************************************* #include <reg52.h> …

uniapp验证码登录

<view click"sendCode" :class"phone.length 11 ? btn2 : " class"btn">获取短信验证码</view> ***************************************************************************************************************************…

hdu 1869

一个最短路径的变形&#xff0c;解决问题的思路也开阔灵活&#xff0c;其实都是万变不离其宗 六度分离 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 726 Accepted Submission(s): 275 Problem Description …

sgu495

不多提。 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int MAXN100000100; int n,m; double dp[MAXN]; int main() {while(~scanf("%d%d",&n,&m)){double ans1.0;dp[1]1.0;for(int i2;i<m;i)…