在大数据虚拟化基础运维第五步创建Hadoop集群开始之前,我想先说明,这里我不通过BDE提供的可视化界面来创建集群。原因是,我们之前部署好的vApp包括BDE管理服务器,是通过虚机的方式在运行。此时,它还没能跟vSphereWeb Client进行绑定,从而暂时无法交付可视化管理界面。在之后的博客文章里,我将介绍如何交付可视化界面。

但大家不要担心,BDE管理服务器自身已经提供了完备的对外服务接口(RestAPI),用户只需通过命令行(CLI)的方法操控它,就能开始对Hadoop集群进行快速部署和管理。下图说明了CLI与RestAPI的关系。

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第1张图片

我们已经通过之前发布的基础运维系列博客文章部署好了BDE管理服务器。现在,就使用CLI创建第一个Hadoop集群吧!具体步骤如下:

1.SSH登录BDE管理服务器的虚拟机 Console

在第一次登录服务器虚拟机时,屏幕上方会提供初始密码。登录成功后,为了确保安全性,请务必通过脚本更改初始密码。

更改密码的脚本:

sudo/opt/serengeti/sbin/set-password –u

如下图所示:

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第2张图片

2.服务器端运行CLI

在Console命令行中直接输入Serengeti,就可以进入SerengetiCLI 程序。SerengetiCLI提供了丰富的集群管理相关命令行和帮助体验。如下图所示:

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第3张图片

3.连接Serengeti服务

connect --host:port

这里默认的端口号是8080,然后可根据提示输入用户名和密码,进行连接。连接成功后会出现命令行提示。如下图所示:

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第4张图片

BDE 1.0中,端口号改成了8443,敬请注意。

4.快速创建Apache Hadoop Cluster

由于在安装时勾选了InitializeResources,BDE管理服务器自动初始化了虚拟化环境下的可见资源,其中包括:资源池、存储和网络。我们可以分别输入以下命令行对这三种资源进行确认。如下图所示:

resourcepool list

datastore list

network list

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第5张图片

正常情况下,这三种资源都可以分配到位。也就是说,现在我们已经可以创建第一个Hadoop集群了。

在这里,我要提出一个问题:我们现在要创建什么样的集群?

对于某一个Hadoop发行版本来讲,这个问题的答案其实很简单:创建发行版的Hadoop集群。比如,对于Cloudera的发行版,能够创建的Hadoop集群就是基于CDH4的Hadoop;对于Pivotal的发行版,只能创建基于PivotalHD的Hadoop。而对于BDE来说,这个问题变成了一个选择题。因为BDE支持多个主流的Hadoop发行版,包括Cloudera、Pivotal、MapR、Hortonworks以及社区的ApacheHadoop。由于在刚刚部署好的BDE管理服务器上已经内置了ApacheHadoop,而其他发行版尚没有上传到服务器,所以为了推进下面的步骤,我们现在可以先创建一个ApacheHadoop集群。在之后的博客文章里,我会介绍如何创建一个Hadoop商业发行版的集群。

创建ApacheHadoop集群,只需一个命令行即可:

cluster create --name helloworld

cluster create是CLI的命令,它的意思是创建Hadoop集群。

name是Clustercreate命令的一个必带参数,意义在于给这个集群一个名字。那么,在这里我就命名helloworld为实际所提供的集群名称。

集群在创建过程中,屏幕会不断提示当前的状态。我们需要等待10分钟,集群便会创建成功。如下图所示:

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第6张图片

5.完成创建并验证集群

进入vSphereClient,我们可以看到一个以helloworld为后缀的新资源池被创建出来。在这个资源池下,有client、worker和master子资源池,且拥有不同数量的虚机正在运行中。如下图所示:

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第7张图片

这就是一个Hadoop集群了。它拥有1个主节点和3个工作节点,并且提供了HadoopClient节点。

主节点即master节点。它运行着Namenode、Jobtracker等主服务。Namenode总体负责客户端数据请求,管理HDFS数据和所有数据节点(datanodes)。Jobtracker总体负责客户端作业请求,管理任务节点(tasktrackers),并向它们分配工作任务。值得注意的是,Namenode和Jobtracker在整个集群各只有一个实例。

工作节点即worker节点。每个工作节点运行着datanode、tasktracker等服务,负责接收主节点的数据块和具体任务,确保计算任务的完成。

client节点包含了Hadoop客户端的一些组件。用户可以很方便的访问HDFS,提交MapReduce作业,运行Pig脚本,或Hive查询等。

为了验证这个刚刚创建好的集群,我们需要查看HDFS和MapReduce的运行状况。

首先取得Namdenode和Jobtracker所在的主节点的IP地址:

cluster list --name helloworld --detail

cluster list是查询集群信息的命令。

name是给定具体名称,意思是查询给定名称的集群。

detail是希望提供集群的具体信息。

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第8张图片

通过屏幕打印的结果,可以取得主节点的IP地址。

简单看一下HDFS和MapReduce是否运行,打开相关的状态页面。

打开HDFS状态页面:http://:50070/。如下图所示:

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第9张图片

再打开MapReduce状态页面:http://:50030。如下图所示:

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第10张图片

它们都运行正常!Hadoop集群创建成功!

到这里,我想可以总结一下,在大数据的虚拟化之路上,我们已经完成了哪些里程碑?

  • 成功部署vSphere Big Data Extensions 1.0beta 版vApp到一个vSphere环境中

  • 通过CLI(命令行方式)完成第一个Hadoop集群的创建

  • 访问HDFS和MapReduce的状态页面,验证集群创建成功

在之后的博客文章中,我会介绍如何交付BDE的UI,并通过可视化界面快速创建一个Hadoop集群。


如有任何问题,您可以发邮件至[email protected]


关于vSphereBig Data Extensions:

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


作者简介:

大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群_第11张图片

张君迟

VMware大数据解决方案项目经理

目前负责VMware大数据解决方案的管理和市场工作。曾担任VMware数据库管理产品vFabric Data Director产品经理,对虚拟化、云计算、关系型数据库和大数据等企业产品、技术方案和市场有深入的理解和实战经验。在此之前,就职于Microsoft从事分布式系统的产品管理和研发工作。