让Hadoop运行在OpenStack之上的Savanna

如今Apache Hadoop已经被各个机构广泛采用成为MapReduce实现的产业标准,而Savanna项目目的就是为了能够让用户在运OpenStack之上运行并管理Hadoop。而Amazon通过EMR(Elastic MapReduce)提供Hadoop服务已达数年之久。

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

方案针对以下几种用例:

为Dev和QA快速配置Hadoop集群

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

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

主要特性如下:

作为OpenStack组件出现

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

支持多种Hadoop分布:

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

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

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

细节说明

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

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

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

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

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

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

常规工作流

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

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

选择Hadoop版本

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

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

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

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

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

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

在不需要时终止集群。

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

选择一个预定义版本

配置作业:

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

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

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

为日志选择路径

设置集群大小限制

执行作业:

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

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

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

用户方面

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

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

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

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

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可插拔外部监视系统。

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

时间: 2024-07-31 03:11:40

让Hadoop运行在OpenStack之上的Savanna的相关文章

Project Savanna:让Hadoop运行在OpenStack之上

Apache Hadoop基本上已经成为MapReduce实现的产业标准,并且被各个机构广泛采用,而http://www.aliyun.com/zixun/aggregation/13463.html">Savanna项目旨在让用户可以在OpenStack上运行和管理Hadoop集群.值得一提的是,Amazon通过EMR(Elastic MapReduce)提供Hadoop服务已达数年之久. 用户需要给Savanna提供一些信息来建立集群,比如Hadoop版本.集群拓扑.节点硬件详情以及一

ubuntu-Myeclipse集成Hadoop运行程序报错: Input path does not exist

问题描述 Myeclipse集成Hadoop运行程序报错: Input path does not exist 各位大神,求问~~ 我在win7-VMware-Ubuntu下搭建了Hadoop伪分布环境,在win7下安装了Myeclipse,并集成Hadoop,运行程序时报如下错: 但hdfs中有_LPH.txt这个文档: 问题可能出在哪里?叩谢~~~ 解决方案 org.apache.hadoop.mapreduce.lib.input.InvalidInputException:input p

GitHub全面运行在Kubernetes之上

本文讲的是GitHub全面运行在Kubernetes之上[编者的话]网络上鲜有文章介绍如何将Kubernetes部署在物理云环境中.本文作者Newland来自于GitHub的SRE团队,他从实际项目实施角度,介绍了如何将Kubernetes部署在GitHub的物理服务器上,并最终实现将GitHub全部运在Kubernetes上. 自GitHub在2008年上线以来,其网站就运行在Ruby on Rails之上.然而,8年过去了, GitHub作为全世界最重要的版本控制仓库,整个组织架构的负载已经

mapreduce-请教高手,Hadoop 运行时物理结构是怎样的?

问题描述 请教高手,Hadoop 运行时物理结构是怎样的? 我知道生产环境下,hadoop的datanode是分布在各个机器上的而且split可能包含多个block里的东西,那么: 1:一个task处理的到底是一个block还是一个split呢? 2:在执行mapreduce任务的时候,各个map 和 reduce 的task是在各个机器节点上执行的吗?如果我的程序在执行map的时候报了溢出,那是什么原因呢? 真心请教,谢谢!

hadoop 运行异常,ReplicaNotFoundException

问题描述 hadoop 运行异常,ReplicaNotFoundException 浏览线上运行日志,发现大量报错信息,截取一条,希望大虾能帮助解决. May 5, 10:07:30.620 AM ERROR org.apache.hadoop.hdfs.server.datanode.DataNode hadoop-78:50010:DataXceiver error processing READ_BLOCK operation src: /192.0.0.78:34568 dst: /19

《Hadoop MapReduce实战手册》一1.3 写WordCountMapReduce示例程序,打包并使用独立的Hadoop运行它

1.3 写WordCountMapReduce示例程序,打包并使用独立的Hadoop运行它 Hadoop MapReduce实战手册本节传授如何写一个简单的MapReduce程序,以及如何执行它,如图1-1所示. 要运行MapReduce作业,用户需要提供一个map函数.一个reduce函数.输入数据,以及输出数据的位置.在执行时,Hadoop实际执行如下步骤. Hadoop通过换行符将输入数据分解成多个数据项,并且在每一个数据项上运行一次map函数,将这个数据项作为对应map函数的输入.执行完

hadoop运行wordcount,出现空指针异常

问题描述 log4j:WARNNoappenderscouldbefoundforlogger(org.apache.hadoop.metrics2.lib.MutableMetricsFactory).log4j:WARNPleaseinitializethelog4jsystemproperly.log4j:WARNSeehttp://logging.apache.org/log4j/1.2/faq.html#noconfigformoreinfo.Exceptioninthread"mai

Hadoop运行wordcount没有输出

问题描述 求助各位大神.Hadoop集群已经搭建好,在运行wordcount.java程序时,output/part-r-00000却没有显示结果 解决方案 解决方案二:你的input目录中没有东西,所以没有输出解决方案三:1.检查input目录设置是否正确2.output目录下面有没有文件,是否根本就没有输出3.如果没文件,说明程序有报错,在错误日志里面看看.怎么就没人回答我的问题呢???

Hadoop运行原理详解

我们通过下面这个天气数据处理的例子来说明Hadoop的运行原理. 1.Map-Reduce的逻辑过程 假设我们需要处理一批有关天气的数据,其格式如下: 按照ASCII码存储,每行一条记录 每一行字符从0开始计数,第15个到第18个字符为年 第25个到第29个字符为温度,其中第25位是符号+/- 0067011990999991950051507+0000+ 0043011990999991950051512+0022+ 0043011990999991950051518-0011+ 004301