天天看點

大資料開發必備工具

在大資料應用的開發中,除了基礎的Hadoop或者R語言之外,還有很多優秀的開發工具,能使開發者如虎添翼。“兵欲善其事,必先利其器”,無論你是從事大資料應用的開發,還是希望分析你的移動應用,這些工具都可以幫助你更快更好的發展。

1) BitDeli

BitDeli是一家剛剛成立的公司,他的産品就是可以讓開發者利用Python腳本, 對應用進行分析。 Python腳本可以很簡單,也可以很複雜。一切可以由開發者來定制。 BitDeli的産品甚至包含了一些機器學習的子產品。相比較龐大的Hadoop分析工具, BitDeli把自己比作是應用分析方面的RoR (Ruby on Rail)。

大資料開發必備工具

2) Continuity

Continuity的兩個創始人是雅虎的前首席雲架構師Todd Papaioannou和前Facebook的HiBase工程師Jonathan Gray。 他們的目的, 就是想使客戶能夠像雅虎和Facebook

利用大資料。 Continuity的産品App Fabric主要是把複雜的與Hadoop和HBase叢集的工作作為一個抽象層, 提供各種大資料開發工具,來滿足企業内部或外部資料需求。

大資料開發必備工具

3) Flurry

Flurry是個一站式的移動應用商店,它每年已經有100美元的營收了。 它不但幫助開發者在它的平台上開發,還可以幫助開發者通過營運資料,對應用進行分析以改善應用。而且, Flurry平台還可以和廣告網絡相對接,幫助開發者更好的實作盈利。

大資料開發必備工具

4) Google Predictive API

在Google提供的衆多開發工具中, Google Predictive API 是最酷的一個了。如果你有好的訓練樣本資料, 那麼GooglePredictive API将會利用機器學習算法來為你的應用建立模型,如果你對大資料開發感興趣,想系統學習大資料的話,可以加入大資料技術學習交流扣群:458數字345數字782擷取學習資源,并把這些模型整合到你的應用中去。 在Google給出的例程裡,包括了反垃圾郵件, 推薦引擎,以及情緒分析等模型的搭建步驟和代碼。

5) Infochimps

盡管Infochimps把自己定義為面向企業的IT平台, 他們大資料平台對開發者來說也非常有幫助。它的技術平台叫做Wukong(悟空),用來進行大資料環境的配置和管理。從起一個Hadoop程序到用Ruby腳本來傳遞資料流。 Wukong都可以讓開發者的工作變得更簡單。此外, Infochimps的平台還包括了一個資料市場,以API或者下載下傳方式提供各類資料。

大資料開發必備工具

6) Keen IO

Keen IO是個強大的移動應用分析工具。開發者隻需要簡單到一行代碼, 就可以跟蹤他們想要的關于他們應用的任何資訊。開發者接下來隻需要做一些Dashboard或者查詢的工作就可以了。

大資料開發必備工具

7)Kontagent

Kontagent是一個移動,社交, 網站應用的分析平台。它基于Hadoop大資料平台而建。今年, Kontagent平台增添了新功能。它可以讓使用者直接采用Hive查詢語言對資料進行任意查詢和分析,而不像原來那樣隻能進行預定義的查詢和分析

大資料開發必備工具

8) Mortar Data

Mortar Data是專為開發者打造的Hadoop開發平台,它用Pig和Python的組合替代了MapReduce以便開發者能簡單地編寫Hadoop管道(Pipeline)。 今年11月, 它推出了Mortar Data開源開發架構,利用開源社群來推動資料共享。 Mortar Data平台運作在亞馬遜的雲平台上。 支援亞馬遜S3以及MangoDB。

9) PlacedAnalytics

利用腳本語言以及API, PlacedAnalytics能夠提供針對移動和網絡應用的詳細使用者行為分析。包括, 使用者使用時間和地理位置資訊。 這些可以幫助開發者的應用更好地吸引廣告商, 也可以幫助開發者對自己的應用進行改善。

大資料開發必備工具

10) Precog

Precog提供的是一個基于開源查詢語言Quirrel的互動式開發環境,名為Labcoat。可以幫助開發者進行應用分析的開發。這個IDE環境還提供了關于Quirrel的教程,以及其他一些複雜的函數。 用公司首席營運官Jeff Carr的話來說:“就算是一個非技術人員, 幾個小時也能掌握基本功能。”

11) Spring For Apache Hadoop

盡管Hadoop是用Java寫的,但是這并不意味着, 在Hadoop上程式設計或者使用Hadoop對Java程式員來說就很簡單。是以, 在2012年初, SpringSource宣布推出了SpringFor Apache Hadoop項目。 把Spring開發架構和Hadoop結合起來。 這樣也便于其他的Spring應用或者基于Java虛拟機的腳本, 更好地和Hadoop以及利用Hadoop的其他技術如Hive或者HBase進行整合。

12) StatMix

和BitDeli以及Keen IO一樣,StatMix也希望能夠使開發者用他們所熟知的語言來進行資料查詢與分析。是以, 出來提供預定義的查詢之外, StatMix也提供API和代碼庫來讓開發者定制化的查詢。并可以把不同資料源的查詢結果整合在一個定制的Dashboard裡。

大資料開發必備工具

13) Spark

Spark是一個基于記憶體計算的開源叢集計算系統,目的是更快速的進行資料分析。Spark由加州伯克利大學AMP實驗室Matei為主的小團隊使用Scala開發開發,其核心部分的代碼隻有63個Scala檔案,非常輕量級。 Spark 提供了與Hadoop 相似的開源叢集計算環境,但基于記憶體和疊代優化的設計,Spark 在某些工作負載表現更優秀。

在2014上半年,Spark開源生态系統得到了大幅增長,已成為大資料領域最活躍的開源項目之一,當下已活躍在Hortonworks、IBM、Cloudera、MapR和Pivotal等衆多知名大資料公司。那麼Spark究竟以什麼吸引了如此多的關注,這裡我們看向Dzone上的6個總結。

(1) 輕量級快速處理。着眼大資料處理,速度往往被置于第一位,我們經常尋找能盡快處理我們資料的工具。Spark允許Hadoop叢集中的應用程式在記憶體中以100倍的速度運作,即使在磁盤上運作也能快10倍。Spark通過減少磁盤IO來達到性能提升,它們将中間處理資料全部放到了記憶體中。

大資料開發必備工具

Spark使用了RDD(Resilient Distributed Dataset)的理念,這允許它可以透明的記憶體中存儲資料,隻在需要時才持久化到磁盤。這種做法大大的減少了資料處理過程中磁盤的讀寫,大幅度的降低了所需時間。

(2) 易于使用,Spark支援多語言。Spark允許Java、Scala及Python,這允許開發者在自己熟悉的語言環境下進行工作。它自帶了80多個高等級操作符,允許在shell中進行互動式查詢。

(3) 支援複雜查詢。在簡單的“map”及“reduce”操作之外,Spark還支援SQL查詢、流式查詢及複雜查詢,比如開箱即用的機器學習機圖算法。同時,使用者可以在同一個工作流中無縫的搭配這些能力。

(4) 實時的流處理。對比MapReduce隻能處理離線資料,Spark支援實時的流計算。Spark依賴Spark Streaming對資料進行實時的處理,當然在YARN之後Hadoop也可以借助其他的工具進行流式計算。對于Spark Streaming,Cloudera的評價是:

大資料開發必備工具

· 簡單:輕量級且具備功能強大的API,Sparks Streaming允許你快速開發流應用程式。

· 容錯:不像其他的流解決方案,比如Storm,無需額外的代碼和配置,Spark Streaming就可以做大量的恢複和傳遞工作。

· 內建:為流處理和批處理重用了同樣的代碼,甚至可以将流資料儲存到曆史資料中。

5. 可以與Hadoop和已存Hadoop資料整合。Spark可以獨立的運作,除了可以運作在當下的YARN叢集管理之外,它還可以讀取已有的任何Hadoop資料。這是個非常大的優勢,它可以運作在任何Hadoop資料源上,比如HBase、HDFS等。這個特性讓使用者可以輕易遷移已有Hadoop應用,如果合适的話。

6. 活躍和無限壯大的社群。Spark起源于2009年,當下已有超過50個機構250個工程師貢獻過代碼,和去年六月相比,代碼行數幾乎擴大三倍,這是個令人豔羨的增長。

繼續閱讀