您的位置:首页 > 运维架构 > Apache

Apache BigTop试用感想

2013-07-06 17:55 218 查看
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 needslzo-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生态圈还费劲。本文出自 “实践检验真理” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: