背景

我们都知道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机架感知原理相关推荐

  1. Hadoop机架感知

    背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群.机架内的机器之间的网络速度通常都会高于跨机架 ...

  2. hadoop之 hadoop 机架感知

    1.背景 Hadoop在设计时考虑到数据的安全与高效,数据文件默认在HDFS上存放三份,存储策略为本地一份,同机架内其它某一节点上一份,不同机架的某一节点上一份.这样如果本地数据损坏,节点可以从同一机 ...

  3. 【转】hadoop机架感知

    原文链接 http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843015.html 背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交 ...

  4. 第十三章 hadoop机架感知

    背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群.机架内的机器之间的网络速度通常都会高于跨机架 ...

  5. Hadoop机架感知与balancer

    版本:Apache Hadoop 1.0.3 Hadoop集群节点通常会跨很多个机架,增加节点的情况时有发生,而且很多时候节点的磁盘容量还不统一,有大有小,所以集群节点非常容易出现磁盘利用不平衡的情况 ...

  6. Hadoop机架感知配置及配置问题解决

    Hadoop在搭建集群的时候,集群的网络拓扑都是默认在同一个机架下的.以/default-rack为一个机架,如下格式. Rack: /default-rack 192.168.71.100:5001 ...

  7. Hadoop3.2.0 Hadoop 机架感知

    Hadoop组件具有机架感知功能.例如,通过将一个块的分片放在不同的机架上,HDFS块放置将使用机架感知来实现容错.这可以在群集中发生网络切换故障或分区时提供数据可用性. Hadoop主守护进程通过调 ...

  8. HDFS机架感知功能原理(rack awareness)

    HDFS NameNode对文件块复制相关所有事物负责,它周期性接受来自于DataNode的HeartBeat和BlockReport信息,HDFS文件块副本的放置对于系统整体的可靠性和性能有关键性影 ...

  9. Hadoop之——机架感知配置

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51935169 1.背景 Hadoop在设计时考虑到数据的安全与高效,数据文件默认在 ...

最新文章

  1. 大数加法【HDU 1002】
  2. 实战|C++在vscode上的调试配置
  3. java控制器删除数据_javaWeb删除一条及多条数据
  4. 自嘲尾款人、丁工人?今年双十一就没想让你做人
  5. 用BluePrint进行Web页面设计
  6. C++——统计多行单个字符类型个数
  7. Linux SPI总线和设备驱动架构
  8. 小学学校计算机设备使用记录表,小学计算机上机记录文本表.doc
  9. wsl 重启_漫谈在Windows Server 2019中安装使用WSL
  10. HDU 1024 Max Sum Plus Plus
  11. 性能分析之排队论应用
  12. lamp兄弟连 mysql_lamp兄弟连视频笔记
  13. 大型网站的静态化处理
  14. 【NVIDIA】ubuntu桌面版安装nvidia显卡驱动程序
  15. 首个中文开源扩散模型!中文AI艺术时代即将开启(IDEA封神榜团队)
  16. 干货|教你使用Doxygen制作出漂亮程序文档
  17. win10下安装Debain Linux子系统
  18. SAP JCo 3.0 下载
  19. jacob操作word教程
  20. 本地web服务器配置(IIS)

热门文章

  1. 2022年最新安徽建筑施工信号工(建筑特种作业)考试真题题库及答案
  2. 计算机c语言专业就业方向,计算机专业就业方向
  3. 给武则天找凤凰的java游戏,女皇武则天:我不愿被 extends
  4. 傅里叶变换动图赏析及解析
  5. [AH2017/HNOI2017]影魔
  6. MATLAB代码:计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度
  7. java 递归 尾递归_递归和尾递归
  8. 使用c语言求一元二次方程的根
  9. php和蝉知,蝉知getshell
  10. 汽车网络安全标准ISO/SAE_21434汇总介绍