大資料開發的工具有哪些?
作為一個大資料開發人員,每天要與使用大量的大資料工具來完成日常的工作,那麼目前主流的大資料開發工具有哪些呢?加米谷大資料為大家介紹下大資料開發工具
Hadoop
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。使用者可以在不了解分布式底層細節的情況下,開發分布式程式。充分利用叢集的威力進行高速運算和存儲。Hadoop是一個能夠對大量資料進行分布式處理的軟體架構。 Hadoop 以一種可靠、高效、可伸縮的方式進行資料處理
Ambari
Apache Ambari是一種基于Web的工具,支援Apache Hadoop叢集的供應、管理和監控。Ambari已支援大多數Hadoop元件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等
AvroAvro
AvroAvro是Hadoop的一個子項目,Avro是一個資料序列化系統,設計用于支援大批量資料交換的應用。它的主要特點有:支援二進制序列化方式,可以便捷,快速地處理大量資料;動态語言友好,Avro提供的機制使動态語言可以友善地處理Avro資料
Cascading
Cascading是一個架構在Hadoop上的API,用來建立複雜和容錯資料處理工作流。它抽象了叢集拓撲結構和配置來快速開發複雜分布式的應用,而不用考慮背後的MapReduce
Chukwa
chukwa 是一個開源的用于監控大型分布式系統的資料收集系統。這是建構在 hadoop 的 hdfs 和 map/reduce 架構之上的,繼承了 hadoop 的可伸縮性和健壯性。Chukwa 還包含了一個強大和靈活的工具集,可用于展示、監控和分析已收集的資料
Flume
FlumeFlume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,Flume支援在日志系統中定制各類資料發送方,用于收集資料;同時,Flume提供對資料進行簡單處理,并寫到各種資料接受方(可定制)的能力
Hive
hive是基于Hadoop的一個資料倉庫工具,可以将結構化的資料檔案映射為一張資料庫表,并提供簡單的sql查詢功能,可以将sql語句轉換為MapReduce任務進行運作。 其優點是學習成本低,可以通過類SQL語句快速實作簡單的MapReduce統計,不必開發專門的MapReduce應用,十分适合資料倉庫的統計分析
Mahout
Mahout 是 Apache Software Foundation(ASF) 旗下的一個開源項目,提供一些可擴充的機器學習領域經典算法的實作,旨在幫助開發人員更加友善快捷地建立智能應用程式。Mahout包含許多實作,包括聚類、分類、推薦過濾、頻繁子項挖掘。此外,通過使用 Apache Hadoop 庫,Mahout 可以有效地擴充到雲中
MapReduce
MapReduce是一種程式設計模型,用于大規模資料集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數式程式設計語言裡借來的,還有從矢量程式設計語言裡借來的特性。它極大地友善了程式設計人員在不會分布式并行程式設計的情況下,将自己的程式運作在分布式系統上
Pig
Pig是一種資料流語言和運作環境,用于檢索非常大的資料集。為大型資料集的處理提供了一個更高層次的抽象。Pig包括兩部分:一是用于描述資料流的語言,稱為Pig Latin;二是用于運作Pig Latin程式的執行環境
Spark
Spark 是一種與 Hadoop 相似的開源叢集計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了記憶體分布資料集,除了能夠提供互動式查詢外,它還可以優化疊代工作負載