• 1
  • 2
  • 3
  • 4
  • 5
阿里云应用开发 首 页  »  帮助中心  »  云服务器  »  阿里云应用开发
浅析Project Savanna:如何让Hadoop运行在OpenStack之上
发布日期:2016-3-15 22:3:10
 

  浅析Project Savanna:如何让Hadoop运行在OpenStack之上

  MapReduce实现的产业标准基本上已经是Apache Hadoop,并且各个机构都在广泛采用,而Savanna项目旨在让用户能够在OpenStack上运行和管理Hadoop集群。值得一提的是,Amazon通过EMR(Elastic MapReduce)提供Hadoop服务已经达到数年之久。

  用户需要给Savanna提供一些信息来建立集群,比如说,集群拓扑、Hadoop版本、节点硬件详情以及一些其它的信息。在用户提供这些参数之后,Savanna将帮助用户在几分钟之内建立起集群,同样还能够帮助用户根据需求对集群进行扩展(增加或者删除工作节点)。

  一、方案针对下面几种用例:

  A、为Dev和QA快速配置Hadoop集群

  B、利用通用OpenStack IaaS云中从未使用过的计算能力

  C、为专用或突发性的分析负载提供“分析即服务”(类似AWS中的EMR)。

  二、主要特性如下:

  1)、通过REST API进行管理,用户界面作为OpenStack Dashboard的一部分。

  2)、作为OpenStack组件出现

  3)、持多种Hadoop分布:

  a、集成了提供商特定的管理工具,比如Apache Ambari或者Cloudera Managent Console。

  b、作为Hadoop安装引擎的可插拔系统。

  c、Hadoop配置的预定义模板来,具备配置参数功能。

  三、细节说明

  如下图所示:

  Swift——可以作为需要进行Hadoop作业的预存储。

  Nova——为Hadoop集群配置虚拟机。

  Savanna产品主要于以下几个OpenStack组件进行通信:

  Keystone——认证用户并提供安全令牌,用以与OpenStack通信,用以给用户分配特定的OpenStack权限。

  Horizon——提供GUI以使用所有Savanna的特性。

  Glance——用于储存Hadoop虚拟机镜像,每个镜像都包含了已安装的OS和Hadoop;预安装的Hadoop应该给予我们在节点布置上的便利。

  四、常规工作流

  Savanna会根据用例给用户提供两种不同抽象等级的API和UI:集群配置和分析作为服务。

  A、集群快速配置的工作流程包括以下选项:

  选择Hadoop版本

  选择包含或者不包含预安装Hadoop的基础镜像

  对于未预安装Hadoop的基础镜像,Savanna将提供整合了供应商工具的可插拔部署引擎。

  定义集群配置,包括集群的大小和拓扑,并且设置不同的Hadoop参数(比如heap大小)。

  将提供可配置的模板用以简易参数配置机制。

  集群的配置:Savanna将提供虚拟机,安装和配置Hadoop。

  集群上的操作:添加和移除节点。

  在不需要时终止集群。

  B、对于分析即服务的工作流程包括以下选项:

  选择一个预定义版本

  配置作业:

  选择作业的类型:pig、hive、jar-file等等

  提供作业脚本源或者是jar路径

  选择输入和输出数据路径(最初只支持Swift)

  为日志选择路径

  设置集群大小限制

  执行作业:

  所有集群配置和作业执行都会清楚的呈现给用户

  作业结束后会自动移除集群

  取回计算结果(比如从Swift)

  五、用户方面

  在使用Savanna配置集群时,用户在两种类型实体上进行操作:Node Template和Cluster。

  Node Template用于描述集群中的节点,包含了几个参数。节点类型就属于Node Template的属性之一,这将决定Hadoop将在节点上运行怎样的处理,确定节点在集群中的扮演的角色,它能够是TaskTracker、Job Tracker、NameNode、DataNode或者这些节点的逻辑组合。Node Template同样还保存了硬件参数,这些参数用于节点虚拟机以及Hadoop在节点上的工作内容。

  每个节点模板和集群都归属于用户给其分配的tenant,用户只能访问已接入tenant里面的对象。用户只能编辑或删除他们建立的对象,当然管理员用户能够访问所有的对象,Savanna需要遵守同样的OpenStack访问策略。

  Cluster实体用于描述Hadoop Cluster,描述了预装Hadoop虚拟机特征,用于集群的部署和集群拓扑。拓扑是节点模板和每个模板该部署节点数量的列表。关于拓扑,Savanna会验证集群中的NameNode和JobTracker是否唯一。

  Savanna提供了多种Hadoop集群拓扑,Job Tracker和NameNode进程能够选择在一或两个独立的虚拟机上运行。同样集群可以包含多种类型的工作节点,工作节点能够同时充当TaskTracker和DataNode,同样也能够扮演一个角色。Savanna允许用户任意选项的组合去建立集群。

  六、与Swift整合

  在OpenStack中,Swift作为标准对象存储,类似Amazon S3。通常部署在实体主机上,Swift被作为“OpenStack上的HDFS”,具备很多使用的增强功能。

  首先为Swift实现的文件系统: HADOOP-8545,这样的话Hadoop作业就能够运行在Swift上。在Swift方面,我们必须将请求更改为 Change I6b1ba25b。它将端点映射为Object、Account或者是Container列表,这样就能够将Swift与依赖数据位置信息的软件整合,从而达到避免网络开销。

  七、可插拔部署和监控

  监视功能来自供应商定制的Hadoop管理工具,Savanna整合了类似Nagios及Zabbix可插拔外部监视系统。

  部署和监控工具都将被安装在独立的虚拟机上,从而允许单一的实例同时管理或监控不同的集群。