Apache BigTop試用感想

來源:互聯網
上載者:User

Bigtop是去年apache基金會推出的一個對Hadoop及其周邊生態進行打包,分發和測試的工具。推出的時間不長,加上官方的文檔很簡單,只告訴你如何用bigtop安裝hadoop,其他都不講。這兩天深入的玩了一下,就個人體會來說,Bigtop算是個比較有趣的玩具。實用價值不大,尤其是對準備在hadoop本身上做文章的公司和個人來說,是一個看上去很美,但實際部署是很值得商榷的玩意。


Bigtop,本意是馬戲團的大帳篷,apache hadoop整個生態系統都是由動物標誌所構成的,所以由Cloudera提交給apache的這個軟體,用意比較明顯,就是他想用這玩意一統Hadoop生態系統圈。這個放到後面去說,總之,Cloudera的野心還是很大的。


在我玩這個東西之前,我做了兩件事,看了一下官方文檔和找中文資料,但是十分遺憾,官方文檔唯寫如何通過下載apache bigtop的官方repo去在你的作業系統裡加入一個安裝hadoop的源,卻沒有講他是如何打包和分發的。中文相關的內容我只找到寥寥幾篇新聞和一篇簡介通過bigtop安裝hadoop的部落格,基本沒有太多的參考價值,只能自己鑽研。


如果只看官方文檔,會認為這個東西不過就是apache官方提供的一個安裝hadoop ecosystem的源,包含yum的repo和apt的repo而已。但是其實這個軟體還是有點水平的,他最重要的功能並不是給你一個.repo的檔案,而是讓你自己把apache的hadoop生態系統打成安裝包和建立倉庫源。這樣你就可以把apache官方的hadoop生態圈都打成自己的包來進行分發,並且這些生態軟體與hadoop發行版之間的相容性是由bigtop來自動解決的,而Cloudera的野心就在這個自動解決上,繼續往下。


那我不是可以做一個自己的hadoop發行版,也開個公司幹個Cloudera出來了嗎?我覺得這問題你基本別想,bigtop在打包過程中,除了會下載maven的repo中的jar檔案,最重要的是他還要下載很多cloudera的jar包。等於你最後打完的東西,是個cloudera和apache混合的rpm包,這是我覺得cloudera的野心所在,所以hortonworks和mapr根本不鳥這個玩意。提都不帶提的。論開源,它裡面有閉源的東西,天知道閉源的jar包都在幹什麼。論效能和穩定,誰也沒驗證過。所以我覺得這就是一個玩具,玩玩即可,真把他打出來的東西放到生產環境,會發生什麼事情,只有上帝才知道。當然他是開源的,你可以去修改pom裡面的東西去掉cloudera的玩意換成自己的,但是我覺得那比直接改hadoop源碼還費勁。


大概介紹一下使用,我用centos,按照官方文檔要求,你必須自己解決如下的依賴:

Building Bigtop requires the following tools:

  • Java JDK 1.6

  • Apache Ant

  • Apache Maven

  • wget

  • tar

  • git

  • subversion

  • gcc

  • gcc-c++

  • make

  • fuse

  • protobuf-compiler

  • autoconf

  • automake

  • libtool

  • sharutils

  • asciidoc

  • xmlto

On RPM-based systems one also needs

  • lzo-devel

  • zlib-devel

  • fuse-devel

  • openssl-devel

  • python-devel

  • libxml2-devel

  • libxslt-devel

  • cyrus-sasl-devel

  • sqlite-devel

  • mysql-devel

  • openldap-devel

  • rpm-build

  • createrepo

  • redhat-rpm-config (RedHat/CentOS only)


我在centos6上玩的,然後我發現,用yum安裝這些東西,只是長征的開始。Maven和ProtocolBuffer是需要自己去安裝的,yum裡面沒有。然後他還少寫了一個依賴是cmake,然後你還需要自己去export PATH,JAVA_HOME,LD_LIBARY_PATH什麼的。


安裝好各種依賴,就可以開始嘗試build hadoop了。bigtop-0.6.0是用最新的apache-hadoop-2.0.5-alpha的源碼進行編譯打包。


正常的話,編譯到中間你會遇到錯誤,maven會號稱找不到com.google.protobuf的類。這時候還是得修改hadoop的一個pom.xml檔案,將編譯配置裡面的protobuf換成你自己編譯的prorocolbuffer的jar包。maven自動下載的protobuf的jar包應該是有問題,用不了。


編譯過程很簡單,但是編譯排錯是很麻煩的事情。編譯完成之後的東西看起來很眼熟。

[root@localhost hadoop]# ll -h

總用量 77M

-rw-r--r-- 1 root root  12M 7月   6 16:33 hadoop-2.0.5-1.el6.src.rpm

-rw-r--r-- 1 root root  15M 7月   6 16:53 hadoop-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 7.6K 7月   6 16:53 hadoop-client-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root  15K 7月   6 16:53 hadoop-conf-pseudo-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 139K 7月   6 16:53 hadoop-debuginfo-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 4.0M 7月   6 16:53 hadoop-doc-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root  12M 7月   6 16:53 hadoop-hdfs-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 4.6K 7月   6 16:53 hadoop-hdfs-datanode-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root  21K 7月   6 16:53 hadoop-hdfs-fuse-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 4.5K 7月   6 16:53 hadoop-hdfs-journalnode-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 4.6K 7月   6 16:53 hadoop-hdfs-namenode-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 4.6K 7月   6 16:53 hadoop-hdfs-secondarynamenode-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 4.6K 7月   6 16:53 hadoop-hdfs-zkfc-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root  17M 7月   6 16:53 hadoop-httpfs-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root  26K 7月   6 16:53 hadoop-libhdfs-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root  11M 7月   6 16:53 hadoop-mapreduce-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 4.6K 7月   6 16:53 hadoop-mapreduce-historyserver-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 8.8M 7月   6 16:53 hadoop-yarn-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 4.5K 7月   6 16:53 hadoop-yarn-nodemanager-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 4.4K 7月   6 16:53 hadoop-yarn-proxyserver-2.0.5-1.el6.x86_64.rpm

-rw-r--r-- 1 root root 4.5K 7月   6 16:53 hadoop-yarn-resourcemanager-2.0.5-1.el6.x86_64.rpm


娘的,是不是跟Cloudera的東西一模一樣,唯一的區別就是前面沒有了cdh的首碼。除了編譯2.x,1.x我也試了,預設情況下遠程已經找不到原始碼的檔案了。


也嘗試編了其他的東西,mahout官方代碼,可執行加源碼一共70多兆,打包完了100多兆。oozie連源碼不到1兆,打完居然60多兆。


hive和pig編譯失敗,直接把我的2G記憶體的虛擬機器跑掛了,所以我覺得這個東西基本就是個玩具,而且受cloudera影響太多,這些編譯好的安裝包,在用rpm安裝的時候,需要用yum解決的依賴,比他打好的包要多得多。我只是嘗試rpm -ivh hadoop-2.0.5-1.el6.x86_64.rpm,告訴我缺少一些依賴,然後用yum一看,居然這些依賴加上依賴的依賴,要下載裝150多兆。除去我之前編譯前下載的各種依賴100M,這要是用在生產環境下,每台伺服器部署的時候都要先下載幾百兆的作業系統依賴,太崩潰了。


所以我覺得,這東西玩玩還行,研究一下他的原理還可以,用到生產環境還是算了,真拿這個裝,比拿tar包安裝hadoop生態圈還費勁。

本文出自 “實踐檢驗真理” 部落格,謝絕轉載!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.