在過去幾年中,企業已經看到了大數據中隱藏著有價值的信息,這推動著供應商們積極地致力于開發技術(例如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無疑將發揮著重要的作用,來使網絡適應更快更遠的發展,推動知識和創新的步伐。