主页 > 新闻资讯 > 大数据学习:Hadoop HDFS机架感知

大数据学习:Hadoop HDFS机架感知

作者:张老师 浏览次数: 2021-01-07 17:12
HDFS分布式文件系统,在实际的工作当中,主要依赖于集群去实现,企业级的分布式集群环境,规模庞大,当然也面临着更多复杂的业务需求场景,要保证数据的安全,也要考虑性能。今天的大数据学习分享,我们主要来讲讲Hadoop HDFS机架感知相关的部分。

大数据学习:Hadoop HDFS机架感知

分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群。

机架内的机器之间的网络速度通常都会高于跨机架机器之间的网络速度,并且机架之间机器的网络通信通常受到上层交换机间网络带宽的限制。

Hadoop在设计时考虑到数据的安全与高效,数据文件默认在HDFS上存放三份,存储策略为:

•第一个block副本放在客户端所在的数据节点里(如果客户端不在集群范围内,则从整个集群中随机选择一个合适的数据节点来存放)

•第二个副本放置在与第一个副本所在节点不同的机架内的数据节点上(随机选择)

•第三个副本放置在不同机架的节点上

•如果还有其他副本,则随机放在其他节点上

这样设计的好处是:

当本地数据损坏时,节点可以从同一机架内的相邻节点拿到数据,速度肯定比从跨机架节点上拿数据要快;当整个机架的网络出现异常,也能保证在其它机架的节点上找到数据。

为了降低整体的带宽消耗和读取延时,HDFS会尽量让程序读取离它最近的节点上的副本,以节约带宽和提升性能。HDFS通过机架感知这一特性实现此功能。

在默认情况下,机架感知没有被启用,所有的机器hadoop都默认在同一个默认的机架下,名为“/default-rack”,这种情况下,任何一台datanode机器,不管物理上是否属于同一个机架,都会被认为是在同一个机架下,此时,就很容易出现增添机架间网络负载的情况。

因为此时hadoop集群的HDFS在选机器的时候,是随机选择的,也就是说,很有可能由于副本的随机分配导致大量的网络传输从而影响性能和集群的服务。

通过修改配置文件core-site.xml中的参数topology.script.file.name开启机架感知,value指定为一个可执行程序,通常为一个脚本(根据入参IP返回该IP地址对应的datanode所在的rack)。

关于大数据学习,Hadoop HDFS机架感知,以上就为大家做了简单的介绍了。HDFS机架感知,与后续的HDFS读写机制是息息相关的,理解了HDFS在机架感知上的设计,对于数据读写也能更好理解。成都加米谷大数据,专业大数据培训机构,大数据开发,数据分析与挖掘,零基础班本月正在招生中,课程大纲及试学视频,可联系客服领取!
热点排行
推荐文章
立即申请>>