顯示具有 技術-BigData-Shark 標籤的文章。 顯示所有文章
顯示具有 技術-BigData-Shark 標籤的文章。 顯示所有文章

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 ?
 

且讓我們繼續看下去~

2013年8月8日 星期四

第一次玩Spark Shark 就上手 - 簡介篇

圖片來源:自行整理 (這隻鯊魚看起來比較威~XD)

這次要介紹的就在上一篇 Hadoop / Haddop like framework and ecosystem project 文章中有提到的Shark 和 Spark。

Shark 和 Spark 都是屬於  Berkeley amplab 的BDAS. the Berkeley Data Analytics Stack  中的子系統,BDAS 的目標就是要打造一套與現有Hadoop 相容,卻又速度更快,更方便使用的系統,然後每一個子系統都可以單獨運作,整個BDAS架構如下圖所示:



BDAS是 Berkeley amplab 負責執行總經費達三千萬美金的龐大計畫(不知道對美國來說算是普通而已?),經費來源一半政府,一半業界 ,預計執行六年,目前已經執行到一半,已經產出相對穩定的專案有三個:
  

Mesos


整個BDAS的最底層用來管理Cluster 的Framework 地位等同於Hadoop2 的 YARN,特色就是可以用來管理各種不同的Cluster 包含Hadoop、Spark、MPI...等。

(目前已經是Apache 的top-level project)

Spark 


有別於Hadoop 的Disk-based MapReduce,Spark 強調的是in-memory cluster computing,號稱比Hadoop快100倍,並且有以下特點:

1. 是以Scala 撰寫 (但是有支援Scala Java 和 Python)
2. 以Resilient Distributed Dataset (RDD) 的方式達到Distributed memory layer for sharing.
3. Compatible with Hadoop Storage API,可以無縫介接Hdfs 、S3...等

(目前還在Apache incubator 階段) 

Shark


架構在Spark之上用來取代Hive ,也號稱比Hive快上30 倍以上,主要的特色就是Compatible with Hive 語法,Shark 可以直接吃Hive 的metastore 資料,也可以直接下HiveQL 去query 資料。


接下來我預計會陸續整理筆記(如果我沒偷懶...)


    PS. 有空可以去看Spark 和Shark 的Source code ...目前市面上聽到新架構新套件他全都用上了akka、spray、netty...等,絕對令人大開眼界...:P


    延伸閱讀:

    [1] An Introduction to the Berkeley Data Analytics Stack (BDAS) Featuring Spark, Spark Streaming, and Shark
    [2] Introduction to Spark, Shark, BDAS and AMPLab
    [3] Transforming Big Data with Spark and Shark - AWS Re:Invent 2012 BDT 305
    [4] Shark: Real-time queries and analytics for big data 
    [5] Spark隨談 (一) - 總體架構