在大数据虚拟化基础运维第五步创建Hadoop集群开始之前,我想先说明,这里我不通过BDE提供的可视化界面来创建集群。原因是,我们之前部署好的vApp包括BDE管理服务器,是通过虚机的方式在运行。此时,它还没能跟vSphereWeb Client进行绑定,从而暂时无法交付可视化管理界面。在之后的博客文章里,我将介绍如何交付可视化界面。
但大家不要担心,BDE管理服务器自身已经提供了完备的对外服务接口(RestAPI),用户只需通过命令行(CLI)的方法操控它,就能开始对Hadoop集群进行快速部署和管理。下图说明了CLI与RestAPI的关系。
我们已经通过之前发布的基础运维系列博客文章部署好了BDE管理服务器。现在,就使用CLI创建第一个Hadoop集群吧!具体步骤如下:
1.SSH登录BDE管理服务器的虚拟机 Console
在第一次登录服务器虚拟机时,屏幕上方会提供初始密码。登录成功后,为了确保安全性,请务必通过脚本更改初始密码。
更改密码的脚本:
sudo/opt/serengeti/sbin/set-password �Cu
如下图所示:
2.服务器端运行CLI
在Console命令行中直接输入Serengeti,就可以进入SerengetiCLI 程序。SerengetiCLI提供了丰富的集群管理相关命令行和帮助体验。如下图所示:
3.连接Serengeti服务
connect --host<serengeti-mgnt-server’s ip>:port
这里默认的端口号是8080,然后可根据提示输入用户名和密码,进行连接。连接成功后会出现命令行提示。如下图所示:
BDE 1.0中,端口号改成了8443,敬请注意。
4.快速创建Apache Hadoop Cluster
由于在安装时勾选了InitializeResources,BDE管理服务器自动初始化了虚拟化环境下的可见资源,其中包括:资源池、存储和网络。我们可以分别输入以下命令行对这三种资源进行确认。如下图所示:
resourcepool list
datastore list
network list
正常情况下,这三种资源都可以分配到位。也就是说,现在我们已经可以创建第一个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分钟,集群便会创建成功。如下图所示:
5.完成创建并验证集群
进入vSphereClient,我们可以看到一个以helloworld为后缀的新资源池被创建出来。在这个资源池下,有client、worker和master子资源池,且拥有不同数量的虚机正在运行中。如下图所示:
这就是一个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是希望提供集群的具体信息。
通过屏幕打印的结果,可以取得主节点的IP地址。
简单看一下HDFS和MapReduce是否运行,打开相关的状态页面。
打开HDFS状态页面:http://<ip_of_name_node>:50070/。如下图所示:
再打开MapReduce状态页面:http://<ip_of_jobtracker_node>:50030。如下图所示:
它们都运行正常!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。
作者简介:
张君迟
VMware大数据解决方案项目经理
目前负责VMware大数据解决方案的管理和市场工作。曾担任VMware数据库管理产品vFabric Data Director产品经理,对虚拟化、云计算、关系型数据库和大数据等企业产品、技术方案和市场有深入的理解和实战经验。在此之前,就职于Microsoft从事分布式系统的产品管理和研发工作。