使用Sahara的过程中会涉及一些重要概念,主要包括:节点、节点组、节点组模板、集群、集群模板、任务。
1)节点:用于部署Hadoop集群的一台虚拟机。这个概念与物理的Hadoop集群中的节点可以直接对应。
2)节点组:指一组Flavor完全相同且部署了完全相同的Hadoop服务的节点。例如,几个Flavor完全相同且都部署了DataNode和TaskTracker的节点,就组成了一个节点组。
3)节点组模板:一个用于创建节点组的模板。其中,定义了一个节点组所需要的基本信息,包括Flavor、Hadoop版本、服务进程种类等。利用节点组模板,可以选择用于部署Hadoop集群的各个虚拟机(即节点)的规格与性能,也可以指定JobTracker/TaskTracker、NameNode/DataNode等服务之间的组合部署方案。需要注意的是,节点组模板中并不指定一个组包含的节点个数;这个数量在集群模板中进行定义。以下是一个节点组模板的典型例子。
{"name": "test-master-tmpl","flavor_id": "2","plugin_name": "vanilla","hadoop_version":"1.2.1","node_processes": ["jobtracker", "namenode"]}
4)集群:一个由多个节点组成的Hadoop集群,这些节点分别属于多个节点组。例如,至少有一个运行JobTracker和NameNode的节点组(如果不考虑单点故障,则该组中只有一个节点),以及一个运行TaskerTracker和DataNode的节点组(其中可以根据需要包括多个节点)。
5)集群模板:一个用于创建Hadoop集群的模板。通过引用节点组模板的方式,集群模板来定义一个集群由哪几组节点组成,以及每个节点组中的节点个数。集群模板与集群之间的关系,相当于Nova中Flavor与实例的关系。Sahara会对集群模板的合法性进行检查。如果发现一个集群模板中不包含JobTracker节点,或者不包含NameNode节点,则认为这个集群模板无效,并且不能使用该模板创建集群。以下是一个集群模板的典型例子。
{"name": "demo-cluster-template","plugin_name": "vanilla","hadoop_version": "1.2.1","node_groups": [{"name": "master","node_group_template_id": "b1ac3f04-c67f-445f-b06c-fb722736ccc6","count": 1},{ "name": "workers", "node_group_template_id": "dbc6147e-4020-4695-8b5d-04f2efa978c5", "count": 1-}]}
以上例子中,名为demo-cluster-template的集群模板定义的集群由两个节点组和3个节点构成。其中,名为master的节点组有1个节点,名为workers的节点组有两个节点。master节点组和workers节点组中的节点,则分别由这两个节点组的节点组模板负责定义。
6)任务(job):用于表示一个EDP数据处理任务,本质上是一个Oozie工作流,而不是一个简单的Hadoop job。
Sahara有两种使用模式:
·基本的大数据集群应用模式(简称基本模式)。
·通过EDP(Elastic Data Processing)机制引入的分析即服务模式(简称EDP模式)。
在基本模式下,使用Sahara的方式非常直接。OpenStack用户按照需求自行创建基于虚拟机的Hadoop集群,然后像使用普通Hadoop集群一样,登录JobTracker节点进行使用即可。在基本模式下,用户需要了解在OpenStack上通过Sahara创建和管理Hadoop集群的工作流程,同时还需要知道如何使用Hadoop集群。
基本模式下使用Sahara的操作流程大致如下:
①安装Sahara:例如使用最简单的RDO方式。
②设置Keystone端点。
③向Glance上传镜像,如果使用vanilla Apache Hadoop,则要求镜像中包含预装的Hadoop服务。
④向Sahara注册上传的镜像。
⑤创建各个节点组模板。
⑥选定节点组模板,创建集群模板。
⑦选定集群模板,创建Hadoop集群。
⑧登录Hadoop集群,并进行使用。
很明显,基本模式提高了用户使用大数据服务的技术门槛。
相比而言,EDP模式有效地解决了这个问题。在EDP模式下,Sahara对底层的Hadoop集群操作和Hadoop业务操作进行了封装,暴露给用户的只有非常简单的接口。在EDP模式下,用户只需指定“数据存放位置”“数据处理程序”和“执行此次处理任务的Hadoop集群”3个要素,即可实现大数据处理操作。此外,为支持EDP模式Sahara还扩展了Horizon,提供了相关图形操作界面,实现了click-and-play。EDP模式大大降低了大数据服务的应用难度,具备了近似AWS EMR服务的能力。