標籤:

請教mesos、k8s、spark、馬拉松、swarm、zookeeper、map-reduce?

請問mesos、k8s、spark、marathon、swarm、zookeeper、map-reduce這些之間的關係和區別是什麼?開始上手這些知識有點分不清。


  • Mesos是一個分散式系統內核,類似YARN,OMEGA,支持1w+節點管理,兩級調度,插件化。 Mesos收集資源CPU,MEM,NET,GPU等,根據DRF(Domain Resource Fainess)演算法吧資源非配給業務業務框架Framework,業務層的調度在Mesos稱為Framework,在這裡提到的k8s,swarm,marathon,saprk都可與Mesos結合作為Framework,用於容器的調度與大數據的處理。

  • K8s,swarm也可單獨使用,都主要用戶容器服務的編排。

  • K8s是Google的一個開源項目,結合了Google的borg系統的大規模服務管理經驗,功能比較全,參數眾多,使用靈活,但學習成本相比swarm高多了。

  • Swarm是Docker官方實現的容器集群管理工具,使用了標準的Docker API。相比K8s,容器編排支持差些,簡單易上手。

  • Zookeeper也是Google派, 分散式開源系統,主要提供一致性服務,k8s,swarm,marathon,saprk,mesos等都可與zookeeper協作,實現服務的高可用性。類似的還有etcd

  • Marathon可以理解為Mesos的一個通用調度框架,出自於一家初創公司 Mesosphere之手。他結合Mesos可實現容器管理,執行命令行長任務等,提供webui,api等。Mesosphere這家公司在致力利用Mesos打造一個數據中心,即DCOS。
  • MapReduce是一個編程模型,是hadoop的組成部分,Hadoop包括Yarn和HDFS以及MapReduce,Hadoop是解決了大數據的可靠存儲和處理,那麼MapReduce就是並發地,分散式地處理大量的數據集的部分。

  • Spark新一代快速,通用的大數據處理引擎,與Hadoop結合,可替代Hadoop MapReduce。


提問的東西包括容器和大數據兩塊,簡單回答一下:

  • 容器

    • mesos+marathon+zookeeper:即所謂的DCOS解決方案,mesos管理集群資源如CPU、內存,marathon為mesos支持的框架的一種,用來調度docker容器。zookeeper作為一個分散式服務框架在很多方案中有使用,在此保障mesos master服務的高可用性。

    • k8s、swarm、yarn、mesos:swarm由docker官方支持,對docker原生命令和API支持較好,但目前的生態發展最為劣勢;yarn用於調度大數據任務(mesos+yarn共同開發一個叫myraid項目),hadoop 2.6.0以後支持DCE(docker container executor) 故也可以調度docker;如果僅調度docker,k8s和mesos各有優劣,選擇一個合適的即可。但如果有多種調度框架,mesos支持hadoop、spark等,是最佳方案。

  • 大數據

    • map-reduce:一個計算模型,hadoop使用。簡單、暴力好用、笨重。

    • spark:二代計算模型,是讓Map/Reduce模型更通用,Map和Reduce之間的界限更模糊。但spark目前和hadoop仍是共存,且不一定會取代haoop。


以下屬於賣萌 ( *?ω?),大家憋當真。

Hadoop是Apache扶持的開源動物園,各種小動物齊心協力搭建了一套可靠、可擴展、分散式的計算平台。

+ 基石:

- 大象(HADOOP/YARN) —— 分散式處理框架,整個生態圈的基石。

+ 應用:

- 蜜蜂象(Hive) —— 類似於SQL,用於運行存儲在Hadoop上的查詢語句。

- 印度象(Mahout) —— 機器學習和數據挖掘庫。

- 小豬(Pig) —— 一個支持HADOOP的高級數據流語言和執行框架。

+ 管理:

- 動物管理員 (ZooKeeper) —— 懂得各種動物語言,提供高性能的動物間協調服務。

當然還有很多不是以動物命名的,名字不好玩就不介紹了。

最後上一張全家福


推薦閱讀:

如何理解深度學習分散式訓練中的large batch size與learning rate的關係?
UC Berkeley提出新型分散式執行框架Ray:有望取代Spark
深入淺出Spark(二) 什麼是RDD
如何看UCBerkeley RISELab即將問世的Ray,replacement of Spark?

TAG:分散式計算 |