工欲善其事,必先利其器。強大高效的大資料技術體系對開展大資料業務有著重要的影響。在大資料應用的眾多領域(如網際網路服務、電商和線上廣告等),相關技術體系的介紹已經屢見不鮮。本文中將介紹HCR如何針對研究行業的特點,打造先進性與實用性兼顧的大資料技術體系,推動公司大資料業務的發展。

 

1 HCR大資料業務特性分析

 

好的技術體系必須貼近實際業務要求。我們先來分析大資料在研究領域的業務特點:

  • 源資料特性。因為客戶主要是線下企業,資料包含內部資料(各類業務資料,以結構化資料為主)和外部資料(結構化和網際網路非結構化兼有),實際可用於分析的資料體量不超過百億/TB級別規模,與網際網路企業動輒千億/PB級不同
  • 低實時性要求。資料研究業務,多以離線、非實時分析為主要處理模式,不同於網際網路/線上廣告DSP的實時處理。
  • 計算模式上,各種統計性模型計算頻繁使用,同時也具有大量的機器學習處理。
  • 分析中常需要多維度比對,且關注資料分佈。所以對資料的多欄位檢索和彙總統計要求較高。
  • 研究人員基本不具有IT背景,難以使用技術性強的工具來分析大資料。熟悉易用的分析方法和工具,對研究人員而言十分必要。
  • 相比技術驅動的公司,研究行業的大資料技術團隊屬於小型團隊,無法在各方面投入較多資源,所以要求平臺低成本、穩定性高和易維護管理。

2 HCR大資料技術體系

針對上述業務要求,HCR設計建設了具有自身特點的大資料技術體系,如下圖

QQ20150703-3@2x

  • 基礎檔案系統

所有叢集伺服器安裝Linux的Ubuntu發行版本,檔案預設基於Ext4和NFS。分散式檔案管理採用HDFS/HADOOP框架,這是大資料系統的標配,不多介紹了。

  • 資料管理

HCR的大資料來源,就形式而言,主要是結構化和非結構化(以文字為主)兩類。這裡綜合使用多種系統實現所有資料的管理和檢索。

  • Cassandra:完成所有結構化大資料(基礎源資料)的儲存檢索與運算支援。可輕鬆擴充套件到未來支援千億規模的資料。相比常見的HBase方案,我們選擇Cassandra是因其在可靠性(無中心結構)、社群更新支援以及與Spark配合方面都具有更多優勢,更適合HCR業務情況。
  • Postgre/Mysql:開源關係型資料庫,儲存中間統計結果資料和業務資料。雖然有了Cassandra,但資料體系中傳統關聯式資料庫仍然很重要:研究員分析所需的大量中間計算/統計結果更適合關聯式資料庫儲存,其多欄位檢索能力(這對Cassandra則很困難)對於多維分析十分重要。叢集部署+分割槽的模式使得其輕鬆應對10億級的資料。
  • Infobright: 結構化資料倉儲方案,其資料壓縮和聚合統計的功能很強。使用的免費社群版在百億資料內效能不錯,很適合結構化大資料下的多維統計分析與深入鑽取場景。
  • Elastic Search:管理和檢索所有非結構化資料(非結構化業務資料和網際網路資料為主)。分散式架構對百億級資料集合支援良好,易於管理使用,其他擴充套件資源(如Cassandra外掛)也很豐富。
  • 業務計算

業務計算是大資料技術體系的核心。包含了對所有業務邏輯計算/分析的支援。

  • 分散式計算體系: 採用Spark(未使用Hadoop/MR)。相比後者,Spark更先進,輕量高效(尤其業務中存在大量機器學習處理時),程式碼開發快,對人員要求統一,這都是我們所關注的。而其子模組Spark Sql可快速實現對大資料的類sql檢索與分析,比Hive具有更強效能和功能。相關的機器學習庫MLib提供的機器學習演算法在業務中大量用於挖掘處理,比Hadoop下的Mahout快很多。都有效支援了業務處理分析。
  • 自然語言處理API:用於實現對非結構化資料的處理和基本分析。涉及的相關功能(分詞/特徵抽取/情感分析/主題模型等)綜合使用了多個開源系統/函式庫,此處不再詳述。
  • 資料流支援工具:Kettle作為經典ETL工具,用於各類源資料引入時的快速ETL處理,視覺化介面方便易用。而Kafka的資料訂閱機制,統一滿足了多個上層業務模型對主題資料流的共享需求。
  • 業務規則引擎:HCR各類公共業務模型的通用分析計算服務,處理結果用於上層/後續研究使用。由大資料平臺部的演算法研發人員實現。
  • Storm:流式計算框架,用於滿足未來實時分析業務的需要,當前尚未上線實用。
  • 分析工具

分析工具是HCR大資料技術體系的最上層,主要由各種工具組成,支援各級資料研究人員完成對大資料的快速探索。

  • 支援Java/R/Python等程式設計實現對大資料的快速深度處理
  • 支援TableAu視覺化分析工具以及其他視覺化手段(如D3 NanoCube等)分析資料
  • 支援SPSS Modeler和Weka進行大資料上的資料探勘處理
  • 支援SPSS/SAS等統計軟體在大資料中間結果上進行統計研究

 

整個技術平臺的選型在考慮先進性和深入分析能力要求的基礎上,更多考慮了實用性、低成本(基本採用開源系統)和管理使用方便性等因素,使得平臺非常適合HCR大資料業務的需要。

3 大資料平臺部

針對大資料技術的專業性要求, HCR構建了專門的大資料平臺部。團隊以以清華、北郵計算機博士為核心,所有成員均為計算機專業碩士以上學歷,在分散式體系架構、機器學習和資料探勘方面具有5-10年以上的豐富經驗。HCR大資料平臺部主要負責:

  • HCR大資料技術體系戰略和研發。包括核心技術平臺的設計與建設,HCR大資料資源的統一引入與資料管理。
  • 探索研究大資料下重要研究模型(如消費者畫像研究)的建模與技術性實現,推進公司大資料深入分析與資料探勘業務的產品發展。

 

4已完成工作和後續目標

 

大資料平臺部成立幾個月來,已初步完成了技術平臺選型與一期系統設計搭建,並對公司現有大資料資源進行了清洗整合。一期平臺當前可分析資料資訊接近400億/30TB,每天分析的行為資料約10億(儲存資料近4億)。在研究分析上,完成了多項基於大資料的研究計算/分析與視覺化展示(如移動網際網路使用者24小時行為模式、2015春運遷徙圖分析等),更重要的是,在消費者畫像研究方面,也已建立起一套先進的分析演算法模型。

在後續的工作中,我們將對平臺架構做功能優化,並根據業務擴容以滿足未來更大規模的資料分析計算需要。同時,我們也將大力提升大資料技術工具的易用性(如針對研究員的Spark Sql視覺化操作介面)。在研究與挖掘方面,將持續專注於消費者畫像研究和行業性資料探勘服務,逐步樹立起HCR在相關領域的競爭優勢。