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

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

大数据Hadoop环境网络特性Hadoop 集群中的各节点通过网络连接起来,而且MapReduce 中的以下过程会在网络中传输数据。

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

(2)作业执行。

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

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

③ Reduce 阶段。因为Reducer 需要的数据已经从Shuffle 阶段传来,所以此阶段不需要网络传输数据。

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

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

五种网络特性

思科公司针对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)网络延迟。交换机和路由器延迟的变化对集群性能的影响有限。相比网络延迟,应用层延迟对任务的影响比例更大。但是网络的延迟会对应用系统造成潜在的影响,例如造成不必要的应用切换等。


原文发布时间为:2014年04月14日
本文作者:中国大数据
本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/209910

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。