參加Conference要觀察一個技術或是專案的受重視程度,通常可以藉由幾個指標來觀察:
- Session Room的安排 (越熱門的會議室通常越大間,越熱門的越早報告)
- 類似題目sharing 次數 (越熱門的題目通常會被分享比較多次)
- Build & Deploy your own big data distribution with Apache Bigtop
- Getting Hadoop, Hive and Hbase up and running in less than 15 min [投影片]
- Lessons in Apache Software Integration [投影片]
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
拿 Debian 當類比確實是個好的比喻,
回覆刪除也希望 BigTop 可以愈做愈好。
謝謝分享 :)