hadoop机架感知原理
背景
我们都知道hadoop是用来存储海量数据的,所以对于hadoop集群,服务器与服务器间的通信时,对于网络带宽尤为重要,但是带宽费用又特别昂贵。由于受上层交换机的影响相同的带宽下,相同机架内的服务器通信远比不同机架服务器通信快。对于这一点,hadoop提供了一个配置项,用来手动设置机架感知。因为对于小的hadoop集群来说,这个优化几乎没有必要,所以hadoop对于机架感知配置项默认是关闭的。
机架感知
在hdfs集群中,文件存储是分成多个block块存储,一个block块默认的大小为128M。为了保证hadoop集群的高效性和安全性,每个block快会备份多个副本,副本个数默认为3个。
在没有配置机架感知的情况下,客户端上传文件到HDFS上时,block是随机存储在不同的服务器。这样就无法优化服务器间的通信效率。如果随机分配到同一个机架内,那如果这个机架断电,那么就会存在安全性问题。
hadoop机架感知策略:
当客户端上次文件到HDFS上
1、文件的block第一个副本存储在客户端链接的服务器上
2、block第二个副本会存储在不同机架内的随机一个服务器上
3、block第三个副本存储在与第二个副本相同机架内不同的服务器上
更多副本随机节点存储
配置
首先需要在namenode的core-site.xml加字段
<property><name>topology.script.file.name</name><value>/hadoop/servers/hadoop-2.6.0-cdh5.14.2/etc/hadoop/topology.sh(脚本的位置)</value></property>
脚本代码
#!/bin/bash
# 记录node节点配置文件存放的位置
HADOOP_CONF=/shell/hadoop/topology.data
while [ $# -gt 0 ]
donodeArg=$1# 将文件作为标准输入exec<${HADOOP_CONF}result=""while read line doar=($line)if [ "${ar[0]}"="$nodeArg" ] || [ "${ar[1]}"="$nodeArg" ] thenresult="${ar[2]}"fidoneshift# 输出if [ -z "$result" ] thenecho -n "/default-rack"elseecho -n "$result"fi
done
服务器机架配置文件
ip 主机名 机架名称
172.17.46.129 node01 /dc1/rack1
172.17.46.128 node02 /dc2/rack2
172.17.46.127 node03 /dc3/rack3
在执行脚本的时候,服务器信息和机架信息会用map的形式存储在内存当中。在不同的机架中,hadoop会根据这些信息,算出最近服务器来进行通信
hadoop机架感知原理相关推荐
- Hadoop机架感知
背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群.机架内的机器之间的网络速度通常都会高于跨机架 ...
- hadoop之 hadoop 机架感知
1.背景 Hadoop在设计时考虑到数据的安全与高效,数据文件默认在HDFS上存放三份,存储策略为本地一份,同机架内其它某一节点上一份,不同机架的某一节点上一份.这样如果本地数据损坏,节点可以从同一机 ...
- 【转】hadoop机架感知
原文链接 http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843015.html 背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交 ...
- 第十三章 hadoop机架感知
背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群.机架内的机器之间的网络速度通常都会高于跨机架 ...
- Hadoop机架感知与balancer
版本:Apache Hadoop 1.0.3 Hadoop集群节点通常会跨很多个机架,增加节点的情况时有发生,而且很多时候节点的磁盘容量还不统一,有大有小,所以集群节点非常容易出现磁盘利用不平衡的情况 ...
- Hadoop机架感知配置及配置问题解决
Hadoop在搭建集群的时候,集群的网络拓扑都是默认在同一个机架下的.以/default-rack为一个机架,如下格式. Rack: /default-rack 192.168.71.100:5001 ...
- Hadoop3.2.0 Hadoop 机架感知
Hadoop组件具有机架感知功能.例如,通过将一个块的分片放在不同的机架上,HDFS块放置将使用机架感知来实现容错.这可以在群集中发生网络切换故障或分区时提供数据可用性. Hadoop主守护进程通过调 ...
- HDFS机架感知功能原理(rack awareness)
HDFS NameNode对文件块复制相关所有事物负责,它周期性接受来自于DataNode的HeartBeat和BlockReport信息,HDFS文件块副本的放置对于系统整体的可靠性和性能有关键性影 ...
- Hadoop之——机架感知配置
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51935169 1.背景 Hadoop在设计时考虑到数据的安全与高效,数据文件默认在 ...
最新文章
- 大数加法【HDU 1002】
- 实战|C++在vscode上的调试配置
- java控制器删除数据_javaWeb删除一条及多条数据
- 自嘲尾款人、丁工人?今年双十一就没想让你做人
- 用BluePrint进行Web页面设计
- C++——统计多行单个字符类型个数
- Linux SPI总线和设备驱动架构
- 小学学校计算机设备使用记录表,小学计算机上机记录文本表.doc
- wsl 重启_漫谈在Windows Server 2019中安装使用WSL
- HDU 1024 Max Sum Plus Plus
- 性能分析之排队论应用
- lamp兄弟连 mysql_lamp兄弟连视频笔记
- 大型网站的静态化处理
- 【NVIDIA】ubuntu桌面版安装nvidia显卡驱动程序
- 首个中文开源扩散模型!中文AI艺术时代即将开启(IDEA封神榜团队)
- 干货|教你使用Doxygen制作出漂亮程序文档
- win10下安装Debain Linux子系统
- SAP JCo 3.0 下载
- jacob操作word教程
- 本地web服务器配置(IIS)