Hadoop是大數據領域最流行的技術,但并非唯一。還有很多其他技術可用于解決大數據問題。除了Apache Hadoop外,另外9個大數據技術也是必須要了解的。
Apache Flink Apache Samza Google Cloud Data Flow StreamSets Tensor Flow Apache NiFi Druid LinkedIn WhereHows Microsoft Cognitive ServicesApache Flink:是一個高效、分布式、基于Java實現的通用大數據分析引擎,它具有分布式MapReduce一類平臺的高效性、靈活性和擴展性以及并行數據庫查詢優化方案,它支持批量和基于流的數據分析,且提供了基于Java和Scala的API。
這是一種由社區驅動的分布式大數據分析開源框架,類似于Apache Hadoop和Apache Spark。它的引擎可借助數據流和內存中(in-memory)處理與迭代操作改善性能。目前Apache Flink已成為一個頂級項目(Top Level Project,TLP),于2014年4月被納入Apache孵化器,目前在全球范圍內有很多貢獻者。
Flink受到了MPP數據庫技術(Declaratives、Query Optimizer、Parallel in-memory、out-of-core 算法)和Hadoop MapReduce技術(Massive scale out, User Defined functions, Schema on Read)的啟發,有很多獨特功能(Streaming, Iterations, Dataflow, General API)。
Apache Samza:是一個開源、分布式的流處理框架,它使用開源分布式消息處理系統Apache Kafka來實現消息服務,并使用資源管理器Apache Hadoop Yarn實現容錯處理、處理器隔離、安全性和資源管理。
該技術由LinkedIn開發,最初目的是為了解決Apache Kafka在擴展能力方面存在的問題,包含諸如Simple API、Managed state、Fault Tolerant、Durable messaging、Scalable、Extensible,以及Processor Isolation等功能。
Samza的代碼可作為Yarn作業運行,還可以實施StreamTask接口,借此定義process()調用。StreamTask可以在任務實例內部運行,其本身也位于一個Yarn容器內。
Cloud Dataflow:Dataflow是一種原生的Google Cloud數據處理服務,是一種構建、管理和優化復雜數據流水線的方法,用于構建移動應用,調試、追蹤和監控產品級云應用。它采用了Google內部的技術Flume和MillWhell,其中Flume用于數據的高效并行化處理,而MillWhell則用于互聯網級別的帶有很好容錯機制的流處理。
該技術提供了簡單的編程模型,可用于批處理和流式數據的處理任務。該技術提供的數據流管理服務可控制數據處理作業的執行,數據處理作業可使用Data Flow SDK(Apache Beam)創建。
Google Data Flow為數據相關的任務提供了管理、監視和安全能力。Sources和Sink可在管線中抽象地執行讀寫操作,管線封裝而成的整個計算序列可以接受外部來源的某些輸入數據,通過對數據進行轉換生成一定的輸出數據。了解詳情
StreamSets:StreamSets是一種專門針對傳輸中數據進行過優化的數據處理平臺,提供了可視化數據流創建模型,通過開源的方式發行。該技術可部署在內部環境或云中,提供了豐富的監視和管理界面。
數據收集器可使用數據管線實時地流式傳輸并處理數據,管線描述了數據從源頭到最終目標的流動方式,可包含來源、目標,以及處理程序。數據收集器的生命周期可通過管理控制臺進行控制。了解詳情
TensorFlow:是繼DistBelief之后的第二代機器學習系統。TensorFlow源自Google旗下的Google Brain項目,主要目標在于為Google全公司的不同產品和服務應用各種類型的神經網絡機器學習能力。
支持分布式計算的TensorFlow能夠使用戶在自己的機器學習基礎結構中訓練分布式模型。該系統以高性能的gRPC數據庫為支撐,與最近發布的Google云機器學習系統互補,使用戶能夠利用Google云平臺,對TensorFlow模型進行訓練并提供服務。
這是一種開源軟件庫,可使用數據流圖譜(data flow graph)進行數值運算,這種技術已被包括DeepDream、RankBrain、Smart Replyused在內的各種Google項目所使用。
數據流圖譜使用由節點(Node)和邊緣(Edge)組成的有向圖(Directed graph)描述數值運算。圖譜中的節點代表數值運算,邊緣代表負責在節點之間進行通信的多維數據陣列(張量,Tensor)。邊緣還描述了節點之間的輸入/輸出關系。“TensorFlow”這個名稱蘊含了張量在圖譜上流動的含義。了解詳情
Druid:Druid是一個用于大數據實時查詢和分析的高容錯、高性能開源分布式系統,旨在快速處理大規模的數據,并能夠實現快速查詢和分析,誕生于2011年,包含諸如驅動交互式數據應用程序,多租戶:大量并發用戶,擴展能力:每天上萬億事件,次秒級查詢,實時分析等功能。Druid還包含一些特殊的重要功能,例如低延遲數據攝入、快速聚合、任意切割能力、高可用性、近似計算與精確計算等。
創建Druid的最初意圖主要是為了解決查詢延遲問題,當時試圖使用Hadoop來實現交互式查詢分析,但是很難滿足實時分析的需要。而Druid提供了以交互方式訪問數據的能力,并權衡了查詢的靈活性和性能而采取了特殊的存儲格式。
(點擊放大圖像)
該技術還提供了其他實用功能,例如實時節點、歷史節點、Broker節點、Coordinator節點、使用基于JSON查詢語言的索引服務。了解詳情
Apache NiFi:Apache NiFi是一套強大可靠的數據處理和分發系統,可用于對數據的流轉和轉換創建有向圖。借助該系統可以用圖形界面創建、監視、控制數據流,有豐富的配置選項可供使用,可在運行時修改數據流,動態創建數據分區。此外還可以對數據在整個系統內的流動進行數據起源跟蹤。通過開發自定義組件,還可輕松對其進行擴展。
(點擊放大圖像)
Apache NiFi的運轉離不開諸如FlowFile、Processor,以及Connection等概念。了解詳情
LinkedIn WhereHows:WhereHows提供帶元數據搜索的企業編錄(Enterprise catalog),可以讓您了解數據存儲在哪里,是如何保存到那里的。該工具可提供協作、數據血統分析等功能,并可連接至多種數據源和提取、加載和轉換(ETL)工具。
(點擊放大圖像)
該工具為數據發現提供了Web界面,支持API的后端服務器負責控制元數據的爬網(Crawling)以及與其他系統的集成。了解詳情
Microsoft Cognitive Services:該技術源自Project Oxford和Bing,提供了22種認知計算API,主要分類包括:視覺、語音、語言、知識,以及搜索。該技術已集成于Cortana Intelligence Suite。
(點擊放大圖像)
這是一種開源技術,提供了22種不同的認知計算REST API,并為開發者提供了適用于Windows、IOS、Android以及Python的SDK。