讓我們一起走進大數據開源項目--第1節

最近大數據領域最火的消息莫過於Pivotal兌現了其年初對於開源其大數據核心產品GemFire,HAWQ,Greemplum DB的承諾 。這個消息也讓Pivotal在國內技術社區風風光光的火了一把,程序猿們可以看到真正的企業級數據倉庫是如何設計和實現的。

與此同時,開源社區中也存在很多類似的優秀大數據相關項目,涵蓋了分佈式數據存儲與計算,數據處理,數據倉庫,機器學習等與數據有關的方方面面,下面就讓我們看看開源社區中的這些大數據項目典型代表。

首先,說起大數據開源項目,第一個必須要提的當然就是Apache Hadoop下的三個子項目Apache HDFS,Apache MapReduce,Apache YARN,這基本上可以認爲是大數據處理的國際標準,是整個大數據生態系統的基石。

分佈式存儲

在分佈式存儲領域,可以按存儲模型分爲文件系統,KV存儲,Columnar存儲,Document存儲,Graph存儲。

分佈式文件系統是整個分佈式存儲的最底層,鼻祖正是Google大名鼎鼎的GFS。Apache HDFS是GFS的開源版本,應該不用再介紹了。RedHat GlusterFS作爲Linux社區老大的產品,也是值得一看的。

KV存儲是最簡單的存儲模型,比較典型的系統包括Amazon DynamoDB, Memcached,Redis,BerkeleyDB, Google LevelDB

Columnar存儲是KV存儲的直接擴展,Value對應Column family或是Column Map。這類系統最基本的是Apache HBase,Google早期三架馬車之一BigTable開源版本,類似的還有ApacheCassandra,Hypertable, Facebook HydraBase。

Document存儲主要有MongoDB, Facebook Apollo等。Graph存儲系統大部分基於Google的Pregel,主要開源實現有:Apache Giraph,Apache Spark Bagel,Phoebus。另外Google也開源了自家的Graph數據庫Cayley。

分佈式計算

分佈式計算方面,主要體現在各種計算框架,數據處理模型,典型代表有Apache MapReduce,最經典的大數據處理引擎。Apache Spark,目前最火的大數據處理引擎,速度相比MapReduce有數量級的提升,基於Spark也構建了一整套生態系統,SQL,Streaming,Machine Learning,Graph。其他的項目包括Apache Storm,Apache Pig,Apache Tez,Apache S4, OpenMPI等。

分佈式任務調度

分佈式任務調度與集羣管理,這類系統主要實現分佈式任務管理,資源調度,集羣管理等基礎任務,包括Apache YARN,Apache Aurora,Apache Falcon,Apache Oozie,Linkedin Azkaban,Apache Ambari,Apache Bigtop, Apache Mesos等。

SQL與SQL-like處理,這類系統正是Pivotal開源的主要產品形態,基本上是在分佈式系統上搭建SQL查詢引擎,有傳統的MPP SQL數據庫,SQL-on-Hadoop,也有SQL-like類的大數據查詢系統。包括Greenplum DB,Apache Hive, Apache HAWQ,Cloudera Impala,SparkSQL,Apache Phoenix,Apache Drill, SharkSQL,Facebook PrestoDB,CockroachDB等。這類系統現今也越來越多向雲端發展,包括Amazon Redshift,Google BigQuery,Snowflake等,遺憾的是這類雲端產品由於安全性問題大多沒有選擇開源。

分佈式服務及數據處理(包括各種日誌處理)

分佈式服務及數據處理領域,主要包括數據獲取,日誌處理,消息服務等分佈式編程必要的組件。主要有Apache Zookeeper, Apache Flume, Apache Kafka, Apache Sqoop, Cloudera Morphlines, Facebook Scribe, Logstash,Linkedin Gobblin等。

**分佈式服務之上服務

在分佈式存儲、計算、數據處理以及各類基礎組件之上,各類分佈式應用層出不窮,比如機器學習應用相關**的Apache Mahout, Cloudera Oryx, Spark MLlib, MLbase,搜索應用相關的Apache Solr,ElasticSearch,HBase Coprocessor, Facebook Unicorn,應該說有了這些分佈式基礎組件的支持,構建新的分佈式應用變得方便很多。
本節就到這裏,有興趣的可以看我的下一篇文章。

很多人都知道我有大數據培訓資料,都天真的以爲我有全套的大數據開發、hadoop、spark等視

頻學習資料。我想說你們是對的,我的確有大數據開發、hadoop、spark的全套視頻資料。
如果你對大數據開發感興趣可以加口羣領取免費學習資料: 763835121

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章