OpenStack Sahara (3)

關於OpenStack Sahara, 其中還有一個特點,
就是Elastic Data Processing (EDP), 根據OpenStack文件上的敘述,
EDP被定義為:

Sahara EDP uses a collection of simple objects to define and execute jobs. These objects are stored in the sahara database when they are created, allowing them to be reused. This modular approach with database persistence allows code and data to be reused across multiple jobs.

The essential components of a job are:
  • executable code to run
  • input and output data paths, as needed for the job
  • any additional configuration values needed for the job run
根據上述定義, EDP是一種工作 (job) 管理的架構,
藉由Sahara database, 同時重複利用執行的程式以及被處理的資料,


對於熟悉hadoop MapReduce架構的開發者而言,
EDP事實上違反了hadoop上, MapReduce架構和HDFS的結合,
EDP的設計框架是針對OpenStack上Swift和Nova的架構設立,
而非hadoop中的HDFS以及TaskTracker,


若是我們用hadoop的架構作為比擬,
EDP就是JobTracker, hadoop VM是TaskTracker, Swift則是HDFS,
事實上, 這兩者的架構有一定的雷同,
舉例來說, Swift和HDFS一樣, 都以URL做為資料提取的介面,
然而, hadoop有MapReduce對HDFS的資料儲存進行最佳化,
在EDP上, 則尚未看到這一點...

另外, 如果只是把hadoop VM當作運算單元,
似乎並沒有使用到其特有的功能,
還必須繼承其繁複的開基與設定程序, 延長VM的起始時間,
若是繼承了HDFS的架構, 則等同將HDFS視為運算的暫存資料池,
考慮到HDFS中, 有效的資料大小必須超過1TB,
這樣的設計是否合適, 則是另一個問題...

且讓我們回頭看看前輩, 也就是Amazon EMR的介紹吧!

問:使用 Amazon EMR 可以做到哪些之前無法做到的事情?
Amazon EMR 可大幅降低耗時的設定和管理工作的複雜性,並對資料所在的 Hadoop 叢集或運算容量進行調校。您可以即時擴充大型 Hadoop 叢集,並在幾分鐘內就開始處理,無須等待數小時或數天。除非您另行指定,否則叢集會在處理完成後自動終止,您就不必為不再需要的資源支付費用。
https://aws.amazon.com/tw/emr/faqs/

考慮到叢集 (cluster) 的開始時間, 資料的傳輸時間,
以及原本HDFS和MapReduce架構上的整合,
在雲端, 不論OpenStack或是Amazon上, 建立hadoop叢集,
所剩下的好處大概只剩下降低設定複雜度以及動態擴充性而已,
若是我們要追求演算法的效率, EDP和EMR看起來不會是一個好選擇...

留言

熱門文章

LTE筆記: RSRP, RSSI and RSRQ

[WiFi] WiFi 網路的識別: BSS, ESS, SSID, ESSID, BSSID

LTE筆記: 波束成型 (beamforming) 和天線陣列