论文部分内容阅读
Hadoop分布式文件系统(HDFS)是一个被广泛应用的分布式文件系统,它基于传统TCP/IP网络,由于传统网络的局限性,HDFS只能掌握节点的运行状况,比如节点的磁盘I/O,CPU和内存资源信息以及网络链路是否连通信息,网络拓扑中距离的远近等网络信息,但不能主动知道链路的繁忙程度,碰到链路繁忙的情况只能被动等待数据传输或者传输时间超时后再选择新的节点进行数据的传输,效率不高。随着数据敏感数据中心的数据规模增大,链路不均衡导致的局部链路繁忙的现象越来越多,因此避开繁忙链路可以有效提高HDFS的I/O效率。 软件定义网络(SDN),它将控制面和数据面分离,进行集中式的网络控制,它可以在交换机统计网络链路的流量然后发送给控制器,控制器可以存储网络拓扑和链路繁忙信息,而 HDFS在写入新数据块时并不在意数据块具体放置在哪一个DataNode上,因此可以使用SDN来提升HDFS写入吞吐率,HDFS只需要查询控制器就可以获取链路繁忙信息,在写入块的DataNode端的选择时避开繁忙链路,从而提升整个系统的块写入吞吐率。SDN还为网络带来了可编程的特性,能有效减少HDFS的网络管理的复杂度。 使用SDN来提升HDFS写入吞吐率的方法在模拟真实数据中心的网络拓扑以及数据敏感数据中心的链路不均衡的负载特征场景下,使用 HDFS测试 I/O的Benchmark测试得到的吞吐量比HDFS的吞吐量平均提升了20%。