在过去几年中,企业已经看到了大数据中隐藏着有价值的信息,这推动着供应商们积极地致力于开发技术(例如Hadoop、Map/Reduce、Dryad、Spark和Hbase)来有效地将大数据转换成信息资产。而软件定义网络(SDN)的出现将能够促进这一过程。
构成大数据的大部分数据实际上是非结构化数据。结构化数据可以通过传统数据库架构来处理,非结构化数据则很难应对。举例来说,视频存储。虽然视频文件类型、文件大小和源IP地址都是结构化地址,但视频内容却是非结构化的,没有固定长度的字段。现在,从大数据分析中获取的大部分价值来自于对非结构化数据的搜索和查询能力,例如,通过使用面部视频算法,从视频中的成千上万个人中搜索出一个人。
为了实现这种搜索能力,我们需要能够跨数千台服务器集群(通过高速以太网连接)并行分析计算。从大数据挖掘出情报信息的过程基本上涉及三个步骤:1)将数据分到多个服务器节点;2)并行分析每个数据块;3)整合这些结果。
我们需要重复这些操作,直到完成对整个数据集的分析。
由于这些并行计算的拆分-合并的性质,大数据分析可能会给底层网络带来巨大的付丹。即使是世界上最大的服务器,数据处理速度只是和其网络在服务器间传输数据的速度一样。例如,对Facebook的研究发现,在连续阶段之间的数据传输占33%的总运行时间,在很多情况下,通信阶段占总运行时间的50%以上。
通过解决这个瓶颈问题,我们可以显著加快大数据分析,其中有两方面的含义:1)更好的集群利用率为管理基础设施的云计算供应商降低TCO;2)为租用基础设施的客户提供更快的作业完成时间以及实时分析结果。
我们需要的是一个智能网络,通过计算的每个阶段,自适应来调整拆分-合并阶段中的数据传输要求,从而不仅提高了速度,而且提高了利用率。
SDN的作用
SDN就有可能为大数据分析构建这个智能自适应网络。由于控制屏幕和数据屏幕的分离,SDN为软件智能提供了良好定义的编程接口,用来编程网络以满足大数据的需求,这些网络是高度可定制化的、可扩展的和灵活的。
SDN可以按需配置网络,符合适当的规模和形状要求,要计算虚拟机可以彼此通信。这直接解决了大数据(大规模并行应用程序)面临的最大的挑战:较慢的处理速度。处理速度很慢,这是因为大数据应用程序中的大多数计算虚拟机花了大量时间等待大量数据通过分散-聚集操作。通过SDN,网络可以在分散-聚集操作期间,创建安全的路径以及按需扩展容量,从而显著地减少了等待时间,加强了总体处理时间。
这种软件智能基本上是了解应用程序需要从网络获得什么,它可以为大数据应用程序带来极大的精确度和效率。原因主要有两个:1)良好定义的计算和通信模式,例如Hadoop的拆分-合并或者Map-Reduce范式;2)集中管理结构让我们可以利用应用程序水平的信息,例如Hadoop Scheduler或者Hbase Master。
通过借助SDN控制器(对底层网络有着全局视图:网络状态、利用率等),这种软件智能可以通过编程网络准确地解译应用程序需求。
SDN还提供了其他功能来协助大数据的管理、整合和分析。新的面向SDN的网络协议包括OpenFlow和OpenStack,致力于让网络管理变得更加简单、更加灵活和高度自动化。OpenStack减少了人力,来实现网络元素的设置和配置,而OpenFlow通过网络自动化来实现更大的灵活性,以支持数据中心自动化、BYOD、安全和应用程序加速等。
另外,SDN在为大数据开发网络基础设施方面也发挥着关键作用,简化对数千交换机的管理,以及促进供应商之间互操作性,为加速网络建设和应用开发奠定基础。OpenFlow能够实现这种互操作性,帮助企业避免专有解决方案的羁绊,致力于将大数据转化为信息资本。
随着大数据强大的影响力,以及大家逐渐意识到大数据的潜力,企业必须确保其网络已经扩展为能够适应这些新兴的需求,才能确保企业的长期成功。很明显,一个成功的解决方案将会利用两个关键的要素:大数据应用程序中的模式以及SDN提供的网络可编程性。从这个角度来看,SDN无疑将发挥着重要的作用,来使网络适应更快更远的发展,推动知识和创新的步伐。