2013年3月12日 星期二

ApacheCon2013 - About BigTop




參加Conference要觀察一個技術或是專案的受重視程度,通常可以藉由幾個指標來觀察:
  1. Session Room的安排 (越熱門的會議室通常越大間,越熱門的越早報告)
  2. 類似題目sharing 次數 (越熱門的題目通常會被分享比較多次)
而這次參加ApacheCon最明顯的感受就是關於Bigtop 的受重視程度,因為光是Bigtop相關的題目就有三四場:
三場的內容整理如下:


Why Bigtop ?


首先先從Hadoop的痛開始說起,傳統安裝Hadoop & Ecosystem 都會從Apache網站下載tar開始,然後接下來的步驟可能如下:

1. 下載安裝Hadoop
2. 設定環境變數 (當發現出現一堆error message 才會想起什麼環境變數忘了設定)
3. 設定HDFS權限 (當發現權限錯誤時才會想起要設定權限)
4. 如果要安裝Hive 就會遇到版本問題 (安裝其他ecosystem也常發生這些問題...Orz..)

所以社群就發現這不是跟當年的Linux一樣嘛?!最一開始Linux 都得要自己去下載套件,自己去Build每個套件,找出相依性....

  圖片來源:Bigtop

這種痛苦直到Debain出現才解決,除了提供一個整合的安裝還境外,由於是Debain完全由社群所貢獻,並不會由特定公司所把持,仍可以保持自由軟體的特性,但是也歡迎其他公司另外基於Debain上再做出更好的產(例如:ubuntu)。畢竟對於大部分的使用者來說,能用apt-get install 來安裝軟體是最好的,誰還會想由 tar ball來安裝呢?因為還得解決一堆相依性的問題。


圖片來源:Bigtop


所以BigTop 的概念就是類似Debain 的角色,要靠社群的力量來完成一個套件,其他公司如Cloudera和Hortoneworks ...等,可以基於Bigtop上加值和再開發。

所以Bigtop的定位就是:

Bigtop make building block to distribution

想像以後如果想要安裝任何Hadoop ecosystem時,只要下以下的指令,不是很棒嘛:

# bigtop lanuch-cluster -config ./hbase.ini

Key challenges


有願景是好的,不過Bigtop專案目前也遇到以下許多問題:

  • A really drivers set of components
  • High churn APIs 
    • 不像Linux 有一個統一的架構,大家都不知道hadoop的最終方向,都是邊走邊改,所以API之間的相容性永遠是問題
  • Asynchronous development cycles.
    • 每個專案由於熱門程度不同,開法速度也不一樣,所以在升級上很難做到同步一致。
  • Combinatorial explosion of dependency
    • 永遠有各種版本的組合,也永遠會有不同的Bug
  • Java based
    • Java 開源專案最怕的 dependency 地獄,就算用 maven 也會有衝突的問題,最有常遇到的例子就是slf4j 和 log4j版本的問題
  • Fundamentally distributed application
    • Apache 的好處就是提供各式各樣的專案和building block,但是缺點就是太多了,你必須到市場去慢慢挑選你要怎麼整合,一個Architecture 就像一個廚師,你必須先知道每個食材的特色,和相互之間的關係,你才可以知道要挑什麼食材煮一套菜。

所以Bigtop的願景怎麼實現?這個專案到底要提供什麼?
  • Integration 
  • Build (make, Maven)
  • Packaging (RPM, DEB)
  • Deployment (Puppet)
  • Testing (integration Test)
  • A continuous integration Jenkins server 

所以目前Bigtop所使用的方法是一步一步慢慢推進,Embrace asynchronous nature (擁抱不同不的Hadoop),總是找出一個最好的build ,然後再每次慢慢改一個lib 來測試推進。




Ps. 講者特別再會場徵求

目前Bigtop的Jenkins和測試整環境放在EC2 由cloudera提供,他們也歡迎任何公司/學術機構提供Test Case (放在Hadoop 跑的Real Case),讓他們放在Jenkins 上持續的跑整合測試。



延伸閱讀:
[1] What is Bigtop, and Why Should You Care
[2] How to install Hadoop distribution from Bigtop 
張貼留言