简述Ironfan在大数据下的作用

在Serengeti中,有二个最重要最关键的功能:一是虚拟机管理,另一个是集群软件安装配置管理,虚拟机管理就是在vCenter中为一个Hadoop集群创建和管理所需要的虚拟机,而集群软件安装配置管理则是在已安装好操作系统的虚拟机上安装Hadoop相关组件(包括Zookeeper,Hadoop,Hive,Pig等),更新配置文件像Namenode/Jobtracker/Zookeeper结点的IP等信息,然后启动Hadoop服务。Ironfan就是在Serengeti中负责集群软件安装配置管理的组件。

Ironfan是基于Chef技术开发的集群软件部署配置管理工具。Chef是一个类似于Puppet和CFEngine的开源的系统配置管理工具,它定义了一套简单易用的DSL(Domain Specific language)语言用于在一台已安装好基本操作系统的机器上安装配置任意软件和配置系统本身。Ironfan基于Chef的框架和API提供了简单易用的自动化部署和管理集群的命令行工具。Ironfan支持部署Zookeeper,Hadoop和HBase集群,也可以编写新的cookbook以部署任意其他非Hadoop集群。

Ironfan最初由美国一家Big Data初创公司Infochimps使用Ruby语言开发,并在github.com上以Apache Licensev2开源。最开始Ironfan只支持在Amazon EC2的Ubuntu虚拟机上部署Hadoop集群。VMwareProject Serengeti团队选择了基于Ironfan来开发Big Data集群工具,并实现了一系列重大改进,让Ironfan可以在VMware vCenter中的CentOS 5.x虚拟机上创建部署Hadoop集群。ProjectSerengeti改进后的Ironfan同样以Apache License v2在github.com上开源,供用户免费下载和修改。

Ironfan架构

下图描绘了Ironfan的架构。Ironfan主要包括Cluster OrchestrationEngine,VM Provision Engine,SoftwareProvision Engine和用于存储数据的Chef Server 和Package Server。

·ClusterOrchestration Engine:Ironfan的总控制器,负责加载解析集群定义文件,创建虚拟机,在ChefServer中保存集群的配置信息,并调用Chef REST API为各个虚拟机创建对应的ChefNode和Chef Client, 并设定各个虚拟机的ChefRole。

·VMProvision Engine:创建cluster中的所有虚拟机,并等待虚拟机得到IP。VM Provision Engine提供了接口以支持在各种虚拟机云环境中创建虚拟机,目前实现了Amazon EC2和VMware vCenter的支持。在Serengeti中,所有虚拟机由Ironfan的调用者在VMware vCenter中创建,并将IP保存在cluster spec文件中,传递给Ironfan的VM Provision Engine。

·SoftwareProvision Engine: 使用虚拟机中预先创建好的缺省用户名和密码,SSH远程登录到所有虚拟机中同时启动chef-client来安装软件。chef-client是Chef框架中的代理程序,负责在其运行的结点上执行预先由Chef Role指定的安装配置脚本。chef-client也会将执行进度数据保存在Chef Server中。

·ChefServer:用于存储Chef Nodes,Chef Clients, Chef Roles, Chef Cookbooks, 提供Chef RESTAPI, 是Chef框架的重要组成部件。

·PackageServer:用于存储所需的Hadoop和其他Hadoop所依赖的安装包。

Ironfan对外提供了Knife CLI命令行接口,其调用者(即SerengetiWeb Service 组件)创建单独进程调用Knife CLI,通过进程退出状态值判断成功或者失败。具体的集群结点数据和执行进度信息由调用者随时从ChefServer获取。

IronfanKnife CLI

每一个SerengetiCLI cluster命令都对应一个IronfanKnife CLI命令,包括create (创建集群)、list(查看集群)、config(配置集群)、stop(停止集群)、start(启动集群)、delete(删除集群)。

clustercreate => knife cluster create -f/opt/serengeti/logs/task///.json--yes --bootstrap

clusterlist => knife cluster show -f/opt/serengeti/logs/task///.json--yes

clusterconfig => knife cluster bootstrap -f/opt/serengeti/logs/task///.json--yes

clusterstop => knife cluster stop -f/opt/serengeti/logs/task///.json--yes

clusterstart => knife cluster start -f/opt/serengeti/logs/task///.json–yes --bootstrap

clusterdelete => knife cluster kill -f/opt/serengeti/logs/task///.json--yes

其中参数/opt/serengeti/logs/task///.json是Serengeti Web Service传递给Ironfan的cluster spec文件,这是一个JSON格式的文件,包含了集群的结点分组、结点个数、结点软件定义描述、集群的配置、PackageServer和所有虚拟机的名称和IP等信息。Ironfan会分析cluster spec文件,生成Ironfan所需要的cluster定义文件并保存在/opt/serengeti/tmp/.ironfan-clusters/.rb。

Ironfancluster定义文件 (DSL, roles)

接下来,我们看看Ironfan是如何定义集群的。下图是一个名为demo的cluster的定义文件demo.rb,它是一个Ruby文件,用Ironfan所定义的DSL语言描述集群的组成结构,定义了3个虚拟机组。其中每一个facet定义了一个虚拟机组,包含若干个安装同样软件的虚拟机。每个分组中结点个数由instance指定,虚拟机上要安装的软件由role指定。这个role就是Chef中所定义的role。

Chef Roles和 Cookbooks

在Serengeti中所有Chef Role文件存放于/opt/serengeti/cookbooks/roles/*.rb,所有

Chef Cookbook 文件存放于/opt/serengeti/cookbooks/cookbooks/

以hadoop_namenode role为例,/opt/serengeti/cookbooks/roles/hadoop_namenode.rb 内容如下:

name 'hadoop_namenode'

description 'runs a namenode infully-distributed mode. There should be exactly one of these per cluster.'

run_list %w[

role[hadoop] # 一个role可以包含引用另一个role

hadoop_cluster::namenode # hadoop_cluster 是一个cookbook, namenode是此cookbook中的一个recipe

]

如果开发者需要修改调试 role和cookbook,可在修改role和cookbook 文件后,运行以下命令上传role和cookbook:

knife role from file/opt/serengeti/cookbooks/roles/.rb –V

knifecookbook upload -V

Cluster Service Discovery

在集群部署过程之中,有些组件的安装和服务的启动顺序是有先后依赖的,比如Datanode服务需要在Namenode服务启动之后再启动,Tasktracker服务需要在Jobtracker服务启动之后再启动,并且这些服务通常不在同一个虚拟机上。因此Ironfan在部署过程中需要控制不同结点上服务的安装和启动顺序,让有依赖关系的结点同步。Ironfan是使用一个名为cluster_service_discovery的cookbook实现相关结点之间同步。

cluster_service_discoverycookbook定义了provide_service,provider_fqdn,provider_fqdn_for_role,all_providers_for_service等等方法,用于实现结点同步。我们以datanode服务需要等待namenode服务启动为例讲解如何实现同步:

·在namenoderecipe中,启动namenode服务之后,调用provide_service(node[:hadoop][:namenode_service_name]),向Chef Server把此结点注册为namenode 服务的提供者;

·在datanoderecipe中,启动datanode服务之前,调用provider_fqdn(node[:hadoop][:namenode_service_name])向Chef Server查询namenode服务提供者的FQDN(或IP); provider_fqdn方法会每隔5秒种向Chef Server查询一次,直到查询到结果,或者30分钟后超时报错。

其他相关结点的同步也与此机制相似,例如Zookeeper结点之间的相互等待,HBase结点等待Zookeeper结点,具体方法调用可查看cluster_service_discovery,zookeeper,hadoop, 和hbase cookbook的源代码。

关于vSphere Big Data Extensions:

VMware vSphere Big Data Extensions(简称BDE)基于vSphere平台支持大数据和Apache Hadoop作业。BDE以开源Serengeti项目为基础,为企业级用户提供一系列整合的管理工具,通过在vSphere上虚拟化Apache Hadoop,帮助用户在基础设施上实现灵活、弹性、安全和快捷的大数据部署、运行和管理工作。了解更多关于VMware vSphere Big Data Extensions的信息,请参见http://www.vmware.com/hadoop。

作者介绍

胡辉 (Jesse Hu)

VMware高级开发工程师

担任VMware大数据产品vSphere BDE和Serengeti开源项目的技术带头人之一,是Serengeti开源项目最早期的开发者,并实现了第一个原型系统,是Serengeti集群软件安装配置管理模块Ironfan的设计者。在加入VMware之前,曾就职于Yahoo,IBM,Oracle等多家IT企业,对开源社区,云计算, Mobile, SNS, Web 2.0, Ruby都有了解和研究。

原文链接:http://vbigdata.blog.51cto.com/7526470/1338356

【编辑推荐】

大数据将推动新一波移动计算革命 新版CA ERwin减小大数据与传统数据源之间的差距 天云趋势蒙世国受邀出席2013Hadoop技术峰会 2014年大数据和预测分析市场值得关注的趋势【责任编辑:王程程 TEL:(010)68476606】

时间: 2024-10-28 13:54:09

简述Ironfan在大数据下的作用的相关文章

Informatica孙大山:大数据下的生意经

ZDNet至顶网软件频道消息:目前,很多企业在完成数据收集后,就把这些数据闲置甚至丢弃了,这是非常可惜的,因为数据对于每个企业来说都是非常宝贵的资源.Informatica中国区资深技术顾问孙大山在做客ZDNet直播访谈时表示,"大数据遍布企业的方方面面,它不仅可以帮助企业规划自身资源,对企业内部做到更全面的内视:大数据也可以帮助企业更好地了解用户,通过数据分析推出一些以客户为导向的产品或以客户为针对性的服务." 企业在做大数据项目时需要注意一点,那就是大数据并不是一朝一夕就能完成的工

激情是否消失 大数据下体育竞技之路

1 前言 2014年巴西世界杯让球迷度过了一个充满激情.泪水.无奈的历程,体育竞技比赛其实就是因为充满了太多的未知性而让球迷更加兴奋和期待,足球的是圆的,在足球场上能发生一切奇迹,当然,黑哨和假球不在正常范围之内. 然而本届巴西世界杯上除了西班牙.意大利这样传统强队的提前出局外各家IT巨头运用大数据进行世界杯的比赛预测也成为一个亮点.同时我们也发现在现代的体育竞技中其实大数据的运用已经比较普遍,大数据的分析对于球队或者教练员来说是很重要的事情,通过这样的数据能更好的了解队员的情况和未来的发展趋势

支付宝数据被盗 大数据下这种侵权会否成为常态

中介交易 SEO诊断 淘宝客 云主机 技术大厅 近日曝光了支付宝的李某团队销售支付宝数据达到了20G,其中有超过1000万条数据销售给了凡客,这给互联网上的数据安全又再次敲响了警钟,虽然这次支付宝数据被窃是支付宝自检下发现的,他们的廉政公署还是发挥了作用,没有产生更加严重的后果,再加上支付宝本身有一定的数据加密能力,被盗窃的数据还没有涉及到用户隐私的核心部分,比如身份证.银行卡号等信息,所以其危害性要相对较小. 但是毕竟涉及到用户的数据被盗,关键还是有这么多的买家来购买,这就说明了这个数据市场规

AdTime雷永华:大数据下的未来广告

4月24日,在"科技创享 变革未来"这一主题下,2013年艾瑞年度高峰会议在北京国家会议中心拉开帷幕.国内智能数字广告营销领导企业AdTime首席技术官雷永华在数据营销分会上发表了<大数据下的未来广告>主题演讲. 雷永华介绍,大数据运用到互联网营销领域可使未来广告呈现"4M"特征."4M"指More Faster.More Centralized.More Vertical.More Closer.在此基础上介绍了AdTime秉承的时

【阿里云产品公测】大数据下精确快速搜索OpenSearch

相信做过一两个项目的人都会遇到上级要求做一个类似百度或者谷歌的站内搜索功能.传统的sql查询只能使用like 或者FIND_IN_SET来实现.后者性能稍微好点但是必须要逗号分隔才可以实现匹配.甚至多条件的话还可能用到OR这是极影响系统性能的.        最近公司项目需要.主要是系统查询缓慢.并且查询精度不敢恭维.一开始想到的是Lucene 毕竟是一个开放源代码的全文检索引擎工具包 并且官方还在持续更新中.当时闲暇时间大概搞了将近一个星期的时间.索引的增删查改以及中文分词IKAnalyzer

甲骨文Thomas:大数据下的共存与集成

本文讲的是甲骨文Thomas:大数据下的共存与集成,随着电影碟中谍4在中国的热映,汤姆克鲁兹这个不老的神话又出现在电影荧幕,而就在2月末一个晴朗的下午,数据库届也迎来了"阿汤哥",一位在全世界范围内拥有着众多粉丝的Oracle技术大师Thomas Kyte. Thomas Kyte(以下简称Tom)是AskTom网站背后的老大,目前是Oracle公司核心技术集团的副总裁,从Oracle 7.0.9版本开始就一直任职于Oracle公司,通过自身20多年的经验,一直致力于和Oracle数据

广东横琴新区地税局打造“大数据下纳税遵从管理”

广东横琴自贸区自挂牌成立以来,登记注册企业已超20000家,其中已引进和在洽谈的世界500强企业52家,国内500强投资企业76家,各类企业总部858家."自贸区效应"带来了区域发展的提速增效,为横琴税收可持续增长奠定了坚实的经济基础. 随着今年5月营改增的全面实施,"互联网+税务"的深入推进,横琴地税人深深地认识到:打造创新驱动发展的税务信息和服务平台,加快创新资源集聚,推动税收体制创新驱动发展,既是促进辖区企业发展的重要途径,又是实现税收稳定.持续增长的必由之路

大数据下,24小时精准医疗或将在2020年实现?

一款名为GTX One的生物计算加速平台现身,引发了业内对于精准医疗行业新的看法.这款GTX One加速系统,通过算法创新充分释放FPGA的计算能力,相当于将一台超级计算机压缩到一个小盒子里:一张FPGA加速卡就能达到60台高性能至强Xeon CPU服务器的计算性能,极大地缩短了生物信息数据的计算时间.事实上,通过生物数据与医疗行业结合,生物医疗行业正在经历高速发展.此次英特尔在京推出的"英特尔精准医疗伙伴计划(Intel BioIT Partners)",有望在2020年实现24小时

动荡时代:机器智能与大数据下的阴霾

文章讲的是动荡时代:机器智能与大数据下的阴霾,记得在一部科幻电影中,一群人因为外星人的到来而在楼顶狂呼欢迎,但随之而来的先是巨大飞船下的一片阴影,接下来就是外星人的一束光炮,这群人和大楼随之灰飞烟灭.有的时候我们过多关注技术好的一面,但实际上技术与对社会的重构相叠加才真正塑造未来的具体形态.技术发展下去,必会逐步挖去现有社会的存在根基,直至社会需要再平衡,全面进入一个动荡的时代.占领华尔街也许正是这种变化的一种隐晦征兆,愤懑的人们面对这种变化其实是很迷茫的,他们只知道自己是99%,却不知道应该提