Sahara是Openstack中BDaaS(BigData-as-a-Service)项目,它能够以更加敏捷的方式管理大数据平台,将大数据平台迁移到云平台,让使用者感受到更加贴心的用户体验。
Sahara基础
云的扩展性、开放性、灵活性。Sahara将云的这些先天性的优点,很好融合到大数据平台。
Sahara可以根据Hadoop/Spark对资源的一些特定要求,比如高性能的CPU,高速的读写能力硬盘(ssd),高速网络传输能力,Sahara通过Heat实现自动调度,将集群部署到具备这些特性的计算节点上。
大数据时代,数据是业务的基础,数据无所不在,随处可见,比如网游、网购、移动支付、物流行业、金融系统等等,随着数据的快速增长,增长量可能达到PB级。每个企业不得不面临两个问题,第一是如何简单快捷的扩容,第二如何保证数据的安全。Openstack本身可以对接多种后端存储,不管是自身的Swift对象存储,还是分布式的Ceph存储。都具备无限横向扩展的能力,并且具有数据自我修复的能力。
Sahara架构
如下图所示,用户可以从Horizon Web UI或OpenStack命令行界面访问和管理大数据资源。要使用OpenStack中的任何服务,需要对Keystone服务进行身份验证。它也适用于Sahara,它需要注册Keystone服务目录。
为了能够创建Hadoop集群,Sahara需要通过联系Glance来在其自己的映像注册表中检索和注册虚拟机映像。 Nova也是为Hadoop集群配置和启动虚拟机的另一个重要的OpenStack核心组件。此外,Sahara可以使用Heat来自动部署Hadoop集群。
Sahara组成
REST API:从仪表板启动的每个客户端请求都将被转换为REST API调用。
身份验证:与其他任何OpenStack服务一样,Sahara必须通过身份验证服务Keystone进行身份验证。这还包括使用Sahara服务的客户和用户授权。
供应商插件:供应商插件位于Sahara体系结构的中间,显示要启动的集群类型。像Cloudera和Apache Ambari这样的供应商在Sahara提供他们的发行版,以便用户可以基于他们的插件配置和启动Hadoop。
弹性数据处理(EDP):支持在Hadoop/Spark集群上运行作业。 EDP确保将作业调度到集群中,并维护作业及其资源的状态,数据源应从何处提取,应该将处理后的数据输出写入到何处。
协调管理器/配置引擎:Sahara集群配置和管理的核心组件。它通过Heat引擎与包括计算、网络、块存储和映像服务在内的其它OpenStack服务进行通信来部署集群。
数据访问层(DAL):Sahara内部的数据存储。
Sahara部署
从上面的架构可以看出,部署Sahara需要提前安装好一些必要的组件,如Keystone、Glance、Nova、Cinder、Neutron、Heat、Horizon等,如果需要满足生产环境的要求,还必须有后端存储。
安装完Sahara,检查支持的plugin类型与版本号,通过浏览器界面,如下图:
也可使用命令行查询:
在http://sahara-files.mirantis.com/images/upstream/中提供了不同版本的plugins,能够根据需要进行下载。
在EDP中Job抽取数据后,数据默认存放在Sahara数据库,同时也支持文件共享存储Manila和Swift对象存储,也可使用Radosgw与Swift对接。实际环境中,优先考虑使用对象存储。
还需要注意的是,采用Sahara部署大数据平台,需要有2个网络,一个是管理网络,一个是数据网络,平台能够通过管理网络与节点进行通信。
Sahara优势
快速配置
通过浏览器执行一些操作,亦或是通过命令行进行交互,部署Hadoop / Spark集群变得非常容易。不需要专业大数据的人员,传统安装的方法,安装人员必须具备一定开发语言的能力,比如scala、java、python、ruby等。如果使用Sahara,只需一个模板或者通过Horizon界面点点鼠标,创建一个Hadoop集群,弹指之间,分分钟搞定。
集中管理
高效地从统一管理界面控制和监控Hadoop / Spark集群。在Sahara管理界面里可以看到,如下图:
集群管理
Sahara提供了一个强劲的模板机制,配置、启动、停止、缩放、调整大小等可能会改变Hadoop / Spark集群生态系统的生命周期管理,以可重复的方式执行相关操作,可以定义Hadoop / Spark配置的模板来简化管理复杂度。
工作量管理
Sahara另一个关键特性是工作量管理。它能够定义如何进行弹性数据处理,运行和调度作业,以及它们应该如何在集群中协同工作。用于数据处理的不同类型的作业有许多,例如MapReduce作业、Pig脚本、Oozie、JAR文件等,Sahara将决定这些不同类型的作业应该如何在定义的集群上运行。
Sahara还支持配置临时集群,并根据需要终止它,例如,运行作业进行某些特定分析,并在作业完成后关闭集群。工作负载管理包含数据源,这些数据源定义了作业将从那读取数据,并将处理结果写入到什么位置。
结束语
微信ID:maxchain
长按左侧二维码关注
领取专属 10元无门槛券
私享最新 技术干货