既然都安裝好了,總是要來比較一下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 ?且讓我們繼續看下去~
沒有留言:
張貼留言