2013年8月25日 星期日

第一次玩Spark Shark 就上手 - 不負責任效能測試



既然都安裝好了,總是要來比較一下Shark效能,是不是真的如傳說中那麼威~~


孬孬免責聲明:此篇測試不是在很嚴謹的環境,也沒有Fine tune的狀況下做出簡單的測試比較,純粹提供參考,有興趣的人建議還是自行測試~:P

測試的環境:

機器:Dell Power-edge 的機器上開4台VM (每台設定4 core CPU 4G Ram)
環境:
  • CentOS6.4
  • Hadoop CDH4.1.x  (Hive 0.9.0)
  • Spark stand-alone mode

當一切安裝就緒就可以在Master 的UI上看到以下資訊:





測試案例 - 統計銀行用戶年均存款餘額的分佈 


  • 年均存款餘額:從當年度1/1 到結算日每天的存款餘額加起來除以365  (如果當天沒有餘額變更記錄,則以上一次變更餘額為本日餘額)
  • 統計分布,分別以下級距來統計客戶數量:0~10,000、10,000~100,000、100,000~1,000,000、1,000,000~10,000,000

下表欄位意義說明:
  • Record per day 代表一天會有幾筆用戶存款資料變更
  • Days 代表產生幾天份資料
  • Data Size 代表實際產生的 File size
時間則是產出統計結果所需要花的時間









Dataset
Record
pre day
100
1,000
10,000
50,000
100,000
Days
365
365
365
365
365
Data Size
9.2Mb
95Mb
926Mb
4.6G
9.2G
Hive
Sec
73.298
143
700
1184
Dead!
Shark
Sec
37
108
216
2747
Dead!


在一開始資料量小的時候,的確Shark 都比Hive快很多,但是隨著資料量變大,vm的記憶體被吃光光,開始吃到swap時,Shark 的效能就會往下掉,然後我最後側到9.2G的檔案得時候,vm就全部死光光了....Orz...


之後會在想辦法找實體機器(要擁有足夠的記憶體)來測試可能會比較準,另外如果加入YARN或是Mesos可能又會有不同的結果...

而且玩到這裡覺得越來越有趣了,也產生了更多問題需要搞清楚,比如說:

1. worker 之間有無溝通?溝通內容?
2. 詳細了解mesos 的task 如分配工作 (順便了解YARN)
3. 了解Spark 如何切割工作?
4. coarse-grained 是否可以開一個以上的work ?
 

且讓我們繼續看下去~

張貼留言