Apache Bigtop再论与卖书求生存 推荐 原创 Slaytanic 2016-12-30 15:22:50 博主文章分类:hadoop ©著作权 文章标签 apache hadoop bigtop 文章分类 Hadoop 大数据 ©著作权归作者所有:来自51CTO博客作者Slaytanic的原创作品,请联系作者获取转载授权,否则将追究法律责任 快一年没写博客了,终于回来了,最近因公司业务需要,要基于cdh发行版打包自定义patch的rpm,于是又搞起了bigtop,就是那个hadoop编译打包rpm和deb的工具,由于国内基本没有相关的资料和文档,所以觉得有必要把阅读bigtop源码和修改的思路分享一下。我记得很早以前,bigtop在1.0.0以前版本吧,是用make进行打包的,其实这个0.9.0以前的版本,搁我觉得就不应该出现在apache正式仓库里,就应该放在incubator里面,但是估计由于是cdh主导开发的,而Doug Cutting又是前基金会主席,所以,一个基本没有产品化的东西从孵化器提升到顶级项目相对容易一些吧。cloudera官方在github上开源的的cdh-package应该是基于bigtop 0.6.0的,不过由于他们的每个git分支只更新rpm的spec文件,所以,貌似默认情况下根本使不了,不厚道啊。而apache的bigtop又没有cdh相关的avro,sentry,llama等依赖,所以只能自己读源码修改。解决方案一:基于cdh-package进行修改,优势是贴近cloudera,可能需要修改的代码量比较少,劣势是基于make,后期维护性和可扩展性较差,我可不想去改Makefile那种东西。解决方案二:基于apache bigtop进行修改,优势是使用gradle编译,可维护性可扩展性好,劣势是代码修改量大。考虑再三,我决定还是贴近社区,远离资本家,跟广大无产阶级走,所以我选择了apache bigtop,另外,cdh-package除了需要java1.7以外,还需要java1.5,所以。Let it be.当然,这里有很多坑都需要踩,其中最大的一个坑就是GFW。感谢政府对我一奔四十的老爷们的思想保护,远离黄赌毒,用伟大的长城防火墙屏蔽了全世界。伟大的长城防火墙不但有花季护航,还有而立护航,不惑护航,知天命护航,耳顺护航及古稀护航,耄耋护航,期颐护航等众多配置选项,保护国人从生到死不受国外先进技术的侵蚀。所以,如果你想正常编译hadoop及其周边生态,听我的,买个国外的云主机,绝对事半功倍。同时,为了保证对bigtop修改本身的版本控制及错误回滚,git或者svn是需要的。以下内容基于bigtop 1.1.0 production以及美国云主机打包编译相关技能天赋加点:gradle, maven, ant, forrest, groovy, shell, rpm spec.特别是shell和spec的天赋要尽可能点满,不行就去看rpm.org里面的文档。而maven和ant基本都是自动施法,不太需要点天赋。另外,maven, ant, java本身的版本就不再赘述了。按照我对bigtop源码的理解,分为执行层,编译层和脚本层。执行层即gradle和gradle的相关定义文件。编译层包括maven, ant,嵌套在maven里的ant,forrest,scala等。脚本层为rpm的spec文件,deb的定义文件以及他们所包含的编译相关脚本,如do-build-components这类脚本。定义编译什么东西及它的版本,下载地址的定义,文件名的定义是在bigtop.bom中定义的,然后会调用package.gradle来进行自动下载及配置编译目录,打包目录等。之后会通过package.gradle调用rpmbuild来读取spec文件,spec文件会通过内部的Source0这类的定义来读取编译脚本,最终通过rpmbuild来建立所有需要的rpm包。初始下载解压缩bigtop-1.1.0之后,需要先对bigtop依赖的包进行初始化,会下载protobuf,snappy什么的。完成之后用户可以编译的是apache的hadoop及周边相关,编译之后是可以用,但是不符合我的需求。为啥,因为cloudera 2B似的为显示自己牛逼,兼容,搞了一个画蛇添足的0.20-mapreduce。由于之前集群安装的是cdh的hadoop,已安装的rpm依赖里面有0.20的安装包,所以,如果我用原生apache bigtop打包出来的 cdh hadoop,是没有0.20这个package的。那么在自己做了repository之后用yum update,会提示缺少0.20的依赖,需要使用--skip-broken来安装,作为一个×××座是不允许这种情况发生的。另外,据同事反馈,cdh的hadoop如果使用apache的zookeeper做ha时会出现找不到znode的问题,无法ha。所以,唯一的解决办法是找到cdh的spec文件,打的跟cdh一模一样才可以。这东西其实并不难找,留个问题自己发现吧。不过,直接取出来的cdh spec文件与打包脚本,在apache bigtop上是不能直接使用的。需要修改不少地方,比如像prelink,还有需要建立一套busybox出来,当然其他的打包依赖还有诸如boost,llvm,thrift等等。还有,cdh会把自己的编译依赖建立在/opt/toolchain下面,但是apache bigtop不会有这东西,自己建软链就可以解决了。写着写着趴下眯了一会午觉,起来突然不知道该写什么了,如果熟悉之前说的天赋加点,这玩意确实没什么难度。如果不熟悉,那这玩意是相当的难以理解和使用,会遇到各种各样的报错,特别是如果在rpmbuild过程中报错,是很难找到出错原因的。至于建立yum仓库这种事情就更不用描述了。整个项目的关键点就是脚本和spec语言,gradle语言都是次要的。最后,为显示自己牛逼,放两张截图出来。我的下一个milestone是把hortonworks的storm package打到cdh hadoop上面跑。不过在实现这个目标之前,似乎公司要把我派去写hive和pig脚本,真是没兴趣啊。最后,打个广告,Nathan Marz (Storm作者) 的书,《大数据系统构建--Lambda架构实践》上市。译者:马延辉,魏东琦,还有我,欢迎大家踊跃购买,看完之后批评指正。购买链接京东当当亚马逊 赞 收藏 评论 分享 举报 上一篇:Tornado学习笔记(四) 下一篇:Hadoop监控分析工具Dr.Elephant 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 Apache的安装与配置 Centos02 安装 DNS 服务器,DNS 区域的名字为 aaa.com,在DNS 区域中添加 www主机指向网站服务器在 Centos01 安装 apache 服务器,优化 apache 服务,客户端使用 www.aaa.com 访问网站默认站点保证网站服务器安全性,修改网站服务器根目录为/www/aaa,修改主页名字为aaa.html,客户端访问测试Centos01切换云计算光盘修改配 centos DNS apache Apache Commons 发挥Apache Commons的威力:轻松开发,让你的项目更加高效! Apache Java Apache Hive Apache Hive的相关知识,包括简单介绍,环境配置,和使用简介 mysql Hive SQL 女子求生存 "懒猪!起床了!懒猪!起床了~"摸索好久又把我破闹钟掖到被窝里本想继续睡会,等等!今天要面试的!一激灵,我三下五除二套上行头,三分钟洗漱完了,拿着包包非一般的速度冲向XX公司(也就是我面试的第300+N家公司)面 在 XX公司的盥洗室里,我飞速的画了个淡淡的妆 ,对着镜子跟前这个穿上7寸高跟鞋才165的小人儿看了下,恩 还行 ,拨拨这头被大风塑造的爆炸头型,定了定神儿,走 职场 求职 休闲 生命可贵 废墟之下求生存 在地震时被埋压在废墟里后,如何进行自救,是每个人都应该关注的问题。 强烈的地震往往会造成大量房屋倒塌,严重威胁人们的生命安全。唐山大地震时,唐山市区约80%的人员被埋压在废墟里;1983年11月7日山东菏泽发生5.9级地震,房屋大量倒塌,2万余人被埋在废墟里。由于开展自救活动迅速,结果上述 职场 休闲 科学 地震 疾病 白天求生存,晚上谋发展 这句话最近在团队经常有人说,其实我也深有体会,因为我看到的技术牛人他们背后肯定有一段很长时间的艰苦时光,可 工作 bbs 技术人 互联网 作业 诺基亚的复活之路:夹缝中求生存 很多人都说诺基亚失败了。原因就在于没有做好创新! 这点我同意。作为第三人,站在这里,没有任何负担的评价别人没有做得好的地方,是很容易的事情。 既然我们都能看到,那么诺基亚必然也看到了。 但是,我们不是诺基亚。所以我们在评论的同时,不需要考虑诺基亚如何才能复活。我们只需要说谁是市场的胜者即可。苹果现在做的很好,我们就可以说苹果如何如何。 但诺基亚不是我们,他们必须同时得考虑如何打赢这场翻身仗 的 诺基亚 如何 创业公司如何在夹缝中求生存 巨头夹击:创业公司如何在夹缝中求生存? 上周的热门新闻无疑是跟“云”有关。微软前脚推出自己的云存储产品SkyDrive,Google后脚推出了Google Drive。不知道是不是怕微软率先抢占战略制高点,Google Drive的推出显得异常仓促,免费存储空间和对应的服务价位在消息爆出的24小时内一 Google 如何 创业公司 制高点 垂直搜索:专业公司夹缝中求生存 文章来源:经济参考报 “Google于今年10月底宣布在美国最新加入能使用户迅速得到航班信息的垂直搜索功能,相信不久就将推广至中国,这个消息让我们这些专业垂直搜索引擎公司一方面欣慰市场的逐步成型,另一方面也备感竞争压力。”听到Google将推出航班搜索业务的消息,刚刚登陆中国的旅游搜索引擎Qunar.com副总裁王彤心境复杂。 随着旅游、职位等垂直搜索业务的不断升温,提供垂直搜索服务的 职场 搜索 休闲 华为愿意使用高通芯片,求生存是主线 眼下华为正处于美国第三轮制裁的困难时期。受实体清单影响,华为面临无操作系统、无芯片可用的境况,从9月15号开始,台积电便停止对华为的供货,不再为华为的麒麟芯片代工。 华为 麒麟芯片 巨头林立,创业者如何夹缝中求生存 就在这几天,整个中国互联网被阿里巴巴按下了F5键,再次刷新了互联网的并购记录和整个互联网的格局,吞下了移动互联网的明星企业UC优视,完成了移动互联网模块漂亮的一击。 在这个道德下限不断被刷新的年代,巨头们一次又一次的刷新并购的上限:当人们对于百度19亿收购91助手的惊叹声余音尚未完全散去时,阿里40(有说50亿)美金的收购再次给人一个重磅炸弹,由此,不难想象,后面国内互联网还会有更大规模的收购发 百度 移动互联网 创业者 阿里巴巴 blank 8小时以内求生存,8小时以外求发展 下文出自传一位就业老师之手,希望能够对你有启发!在国内,IT行业目前仍然属于新兴行业,整个社会的信息化也处在快速发展的过程中,从事软件开发,可以说是性价比最高的工作。而随着入行门槛的降低,每年都有大量的新人涌入。作为一名就业指导老师,我在工作中发现这样一个现象:一方面公司对于拥有3年左右开发经验的程序员求贤若渴,另一方面很多程序员在工作了1到2年之后就选择转行了。为什么很多人在IT这条 IT 软件开发 技术路线 话里话外:信息化建设困难中求生存 咨询行业的客户来自那些有理想、有抱负的企业。很多小企业一年有个百八十万的营业额就已经很满足了。他们很难成为咨询行业的潜在客户。 管理 信息化 CIO 流程 延展 夹缝中求生存,卑微,却又倔强,然后静静的绽放~ 前两天早上锻炼的时候在路上拍的……他们只是生长在这样的柏油马路的夹缝中~它们可能很卑微,却很倔强,顽强的活下去,然后静静的绽放……那天在篮球场旁边排到的~看到了吗?就是它:然后被无所不能的群友…… 码农 增删改查 公众号 8小时之内求生存,8小时之外谋发展 昨天,公司总部的刘老师在微信圈里发了一条信息,内容概括为:他在周六值班的时候沟通了两位咨询职业规划的客户——一位是10年以上汽车行业外贸在要被派去一个经常会发生战乱的国家,但他自己不想去,想咨询转型事宜;另一位则是副营级的军人不得不转业,要谋求转型。刘老师总结,这两个客户有四大共性:一是跟国家宏观形势有关;二是两位客户内心深处并不真正认可本职工作;三是工龄都在10年以上;四是都是转型迫在眉睫。无独 西安 职业规划 服装设计 本职工作 陕西人 巨头夹缝求生存:菜鸟创业团队的辛酸苦辣 (本文转载) 的小团队带来一些帮助,也希望通过这个方式,能够认识一些新的朋友,给他们一些意见和帮助,微信hardball。我给大家说 2 个故事。2011 年底,我们几个对互联网非常热爱的朋友组建了一个兴趣小组叫ilikelabs,我们不是业界明星,也不是技术大牛,我 微信 微信公众账号 开放平台 Apache BigTop试用感想 Bigtop是去年apache基金会推出的一个对Hadoop及其周边生态进行打包,分发和测试的工具。推出的时间不长,加上官方的文档很简单,只告诉你如何用bigtop安装hadoop,其他都不讲。这两天深入的玩了一下,就个人体会来说,Bigtop算是个比较有趣的玩具。实用价值不大,尤其是对准备在hadoop本身上做文章的公司和个人来说,是一个看上去很美,但实际部署是很值得商榷的玩意。Bigtop,本 运维 hadoop bigtop 生态系统 从求生存到修体系,我在阿里找到了技术人的成长模式 作者|悟寻阿里巴巴前端技术专家导读:成长即意味着改变,而改变本身是一件很痛苦的事情。改变会有连锁反应,一次改变之后,你的心态和认知可能会和以前大有不同。平凡的人总是相似,不凡的人各有各的不凡,技术人的成长道路依然很长!本文由阿里巴巴前端技术专家悟寻将他在阿里的成长思考进行分享,希望能够给正在业务中深耕细作的你带来一些思考和方向。前言我将我经历过的或者正在经历的状态,分成三个阶段进行总结:求生存,谋 development system ROI 阿里巴巴集团 高T技术大牛的百度十年:白天求生存,晚上求发展 我在百度的十年成长,有快的时候,有慢的时候,有迷惑的时候,也有 百度 架构师 公众号 再论 ORM Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射。 ORM 对象关系映射,这样说还是懵。 这里比较难理解的是 关系 —— 即Relationl ,虽然看起来是形容词,但是理解为名称应该更加合理。当然,也不要纠结这个。可以这样理解,对象:java Mode 数据库 数据 orm框架 hibernate 元数据