草庐IT

Apache BigTop试用感想

Slaytanic 2023-03-28 原文
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生态圈还费劲。

有关Apache BigTop试用感想的更多相关文章

  1. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  2. 阿里云国际版免费试用:如何注册以及注意事项 - 2

    作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。​关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐

  3. ruby-on-rails - 为 ruby​​ on rails web 应用程序创建试用期 - 2

    谁能告诉我实现ruby​​onrailsweb应用程序30试用期的最佳方法,很像Basecampfrom37signals的方式是吗?目前我有一个用户登录页面,然后用户可以访问显示有关其产品/定价等的当前信息的仪表板。我希望用户能够注册并拥有完整的应用程序功能,然后在30天后过期。谢谢 最佳答案 创建用于x天试用期的Rails应用程序非常容易。您想为您的用户实现30天的试用期,然后执行以下操作:第1步:在application_controller.rb中创建这些方法,例如#application_controller.rbclas

  4. 腾讯云区块链服务平台(TBaaS)长安链体验网络公测试用感受 - 2

    前阵InfoQ社区看到腾讯云腾讯云区块链服务平台(TBaaS)长安链体验活动,一顿操作猛如虎报了个名,体验完用一个字概括:强。非要再加几个字的话,总体感受下来装配模式灵活高效,配套工具完整辩解。话不多说开始主题本文目录结构分为区块链分类和TBaaS平台介绍、TBaaS平台上链教程三个部分一、区块链分类:大体上来说,区块链可分为公链,联盟链,私有链三种:公有链(PublicBlockchain)公有链是指任何人都能参与的区块链。公有链是去中心化程度最高的区块链,不受机构控制,整个账本对所有人公开透明。任何人都能在公有链上查询交易、发送交易、参与记账。加入公有链不需要任何人授权,可以自由加入或者离

  5. javascript - Chrome 网上应用店付款 免费试用扩展程序 - 2

    我正在尝试使用他们新的许可API将我在Chrome网上应用店中发布的GoogleChrome扩展程序转换为免费试用版-但是Google的相关文档让我感到非常困惑。请参阅:https://developer.chrome.com/webstore/check_for_payment此外,OpenID2.0似乎已被弃用?https://developers.google.com/accounts/docs/OpenID2是否有某种插入式代码来设置免费试用并根据许可API检查用户?我有很多用户,我不想搞砸并强制他们碰壁——他们应该免费使用。我在网上找不到任何其他这样做的人来查看他们的代码并理

  6. 华为OD机试用JS实现 -【硬件产品销售方案】(2023-Q2 押题) - 2

    最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理已参加机试人员的实战技巧本篇题解:硬件产品销售方案题目描述某公司目前推出了AI开发者套件、AI加速卡、AI加速模块、AI服务器、智能边缘多种硬件产品,每种产品包含若干个型号。现某合作厂商要采购金额为amount元的硬件产品搭建自己的AI基座。假设当前库存有N种产品,每种产品的库存量充足,给定每种产品的价格,记为price(不存在价格相同的产品型号)。请为合作厂商列出所有可能的产品组合

  7. javascript - 如何防止/管理 Stripe Webhook 在试用注册时以 0 美元发送发票? - 2

    我正在开发一款提供14天免费试用的应用程序。为了处理付款,我使用Stripe并监听webhook,这样我就可以在事件发生时在后端执行功能。不过,我注意到的一件事是,Stripe向我发送的发票数据在试用期间收取的金额为0美元。因此,如果客户注册,他们会从Stripe获得一张0美元的发票(我有我的webhook设置来为我收到的每张发票发送一封电子邮件)。这并不可怕,但从用户体验的Angular来看,我想避免在有人期待试用时立即收到发票的冲击(即使该发票的价格为0美元)。我考虑过只检查Stripe发送过来的数据并过滤掉0美元的发票,但如果我提供折扣或其他东西,这似乎不是最好的方法。关于如何更

  8. 华为OD机试用Python实现 -【农场施肥】(2023-Q1 新题) - 2

    华为OD机试题华为OD机试300题大纲农场施肥题目描述输入描述输出描述备注示例一输入输出说明示例二输入输出说明Python代码实现本题包含的算法思路华为OD机试300题大纲参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。华为OD清单查看地址:

  9. mysql - 我尝试用golang连接mysql,报错 - 2

    我的测试代码喜欢:packagemainimport("fmt""math/rand""time""log""database/sql"_"github.com/go-sql-driver/mysql")funcmain(){db,err:=sql.Open("mysql","username:password@tcp(55b5f18rtr8895.sh.cdb.myqcloud.com:7863)/bsk")iferr!=nil{log.Println(err)}db.SetConnMaxLifetime(100*100)db.SetMaxIdleConns(10)db.SetMax

  10. windows - Neo4j 3.0.4 Enterprise试用版在Windows下启动失败 - 2

    Neo4j3.0.4企业版,在尝试安装服务或启动时显示以下错误。也在不同的机器上试过,如何解决这个问题?E:\Neo4j\neo4j-enterprise-3.0.4\bin>neo4j.batinstall-service-verboseVERBOSE:Neo4jRootis'E:\Neo4j\neo4j-enterprise-3.0.4'VERBOSE:Neo4jServerTypeis'Enterprise'VERBOSE:Neo4jVersionis'3.0.4'VERBOSE:Neo4jDatabaseModeis''VERBOSE:Installcommandspecifi

随机推荐