Hadoop集群环境下网络架构的设计与优化

大数据时代,研究大数据的IT 厂商把研究重心放在优化大数据系统软件架构、优化业务逻辑、优化数据分析算法、优化节点性能等方向,而忽略了大数据环境基础设置中网络环节的评估和优化。本文介绍了思科公司在Hadoop 集群环境下的网络架构设计与优化经验。node


大数据Hadoop环境网络特性Hadoop 集群中的各节点经过网络链接起来,并且MapReduce 中的如下过程会在网络中传输数据。算法

(1)写数据。当向HDFS 写入初始数据或者大块数据时,会发生数据写入过程。写入的数据块须要备份到其余节点,须要在网络中传输这些数据。数据库

(2)做业执行。缓存

① Map 阶段。在算法的Map 阶段,几乎不须要在网络中传输数据。在Map 开始阶段,当HDFS 数据没有本地性(数据块不在本地存储,须要从其余节点拷贝)时,才需在网络中传输数据。服务器

② Shuffle 阶段。这是做业执行中在网络中传输数据的阶段,数据传输的程度依赖于做业。Mapper 阶段的输出内容,会在这个时候传输到Reducer 进行排序。网络

③ Reduce 阶段。由于Reducer 须要的数据已经从Shuffle 阶段传来,因此此阶段不须要网络传输数据。架构

④ Output 复制。MapReduce 的输出做为文件存储在HDFS 上。当将输出结果写入HDFS 时,产生的备份会在网络中传输。app

(3)读数据。当应用程序如网站、索引或者SQL数据库从HDFS 读取数据时,会发生数据读取的过程。另外,网络对Hadoop 的控制层很是重要,好比HDFS 的信令和运维操做,以及MapReduce 架构都受到网络影响。运维

五种网络特性oop

思科公司针对Hadoop 集群环境下的网络环境进行了一个测试,测试结果显示,一个有弹性的网络对Hadoop 集群很是重要;对Hadoop 集群具备重要影响的网络特性,以其影响程度从大到小依次排序为:网络可用性和弹性、Burst 流量突发处理和队列深度、网络过载比、Datanode 网络接入和网络延迟。

(1)网络可用性和弹性。要部署一个高冗余性和可扩展的网络,支持Hadoop 集群的增加。在Datanode之间部署多条链路的技术要比那些有单点失效或两点失效的技术要好。交换机和路由器已经在业界被证实可以为服务器提供网络可用性。

(2)Burst 流量突发处理和队列深度。HDFS 的有些操做和MapReduce Job 会产生突发流量,如向HDFS加载文件或者把结果文件写入HDFS 都须要经过网络。网络若是处理不了突发流量,就会丢弃数据包,因此适当的缓存能够缓解突发流量的影响。确保选择使用缓存和队列的交换机和路由器,来有效处理流量突发。

(3)网络过载比。一个好的网络设计须要考虑到网络中关键节点的拥塞状况。一个ToR 交换机从服务器接收20Gbps 的数据,可是只有2 个1Gbps 的上联口会形成数据包丢失(10:1 的过载比),严重影响集群的性能。过分配置的网络的价格又很是昂贵。通常状况下,服务器接入层能够接受的过载比在4:1 左右,接入层和汇聚层之间,或者核心层的过载比在2:1左右。

(4)Datanode 网络接入。要基于集群工做负荷来推荐带宽配置。通常集群中的节点有1 到2 根1GB 的上联口。是否选择10Gbps 的服务器要权衡价格和性能。

(5)网络延迟。交换机和路由器延迟的变化对集群性能的影响有限。相比网络延迟,应用层延迟对任务的影响比例更大。可是网络的延迟会对应用系统形成潜在的影响,例如形成没必要要的应用切换等。

相关文章
相关标签/搜索