利用 Ambari 管理 Hadoop 集群
在上一章节中,我们已经体验到 Ambari 为 Hadoop 生态圈的安装提供的便利。这已经省去了很多的人力成本。尤其是对大数据圈子的测试人员来说,自动化就容易了很多。下面我们看看如何通过 Ambari 管理 Hadoop 的集群。
Service Level Action(服务级别的操作)首先我们进到 Ambari 的 GUI 页面,并查看 Dashboard。在左侧的 Service 列表中,我们可以点击任何一个您想要操作的 Service。以 MapReduce2 为例(Hadoop 这里的版本为 2.6.x,也就是 YARN+HDFS+MapReduce),当点击 MapReduce2 后,就会看到该 Service 的相关信息,如下图。
图 7. MapRduce2 的 Service 页面
图 7. MapRduce2 的 Service 页面
中间部分是 Service 的模块(Component)信息,也就是该 Service 有哪些模块及其数目。右上角有个 Service Action 的按钮,当点击该按钮后就可以看到很多 Service 的控制命令。也就是通过这些 Service Action 命令,对 Service 进行管理的。
可能有的人会说,装完 Hadoop 的集群后,并不知道这个集群是不是可用。这时候我们就可以运行一个“Run Service Check”。点击这个命令后,就会出现下图的进度显示。
图 8. MapReduce Service Check
图 8. MapReduce Service Check
其实这里就是通过运行一个经典的 MapReduce Wordcount 实例,来检查 MapReduce 是不是正常。对于 Service Action 里面的 Start、Stop 的含义就是,启停整个集群所有该 Service 的模块(也就是 Service level)。当执行进度页面弹出来的时候,我们可以点击 Operations 的名字,进而查看每个机器的进度和运行 log。如下图 Stop 的操作。
图 9. 命令执行进度 1
图 9. 命令执行进度 1
图 10. 命令执行进度 2
图 10. 命令执行进度 2
维护模式(Maintenance Mode)以及如何添加一个自定义的命令到 Service Action,我会在后续的连载中进行介绍。
Host Level Action(机器级别的操作)首先,我们回到 Ambari 的 Dashboard 页面。页面最上面中间的地方有个 Hosts,点击这个标签,我们就可以看到 Ambari 所管理的机器列表。如下图。
图 11. Ambari 的机器列表
图 11. Ambari 的机器列表
图片中红色的数字是警告信息(Ambari Alert),这里我们先略过它,后续文章再做介绍。先看左上角的 Actions,点击这个按钮,就可以看到 Host level Action 的选项了,其实和 Service Level 是类似的,只是执行的范围不一样。如下图。当用户选择 All Hosts -> Hosts -> Start All Components,Ambari 就会将所有 Service 的所有模块启动。
图 12. 启动所有 Service 的所有模块如果用户选择 All Hosts-> DataNodes -> Stop,Ambari 就会把所有机器的 DataNode 这个模块关闭。如下图。
图 13. 关闭所有的 DataNode 模块 Component Level Action(模块级别的操作)上面的图中,我们可以看到 Decommisson、Recommission。这些命令其实是自定义的模块级别的操作(Component Level Action)。不过上图中命令一旦执行,就是对多个机器的同个模块执行。
我们现在尝试只对单个机器的一个模块(Component)执行。首先我们回到 Hosts 的页面。这时候点击机器名,我们就会进入到该机器的 Component 页面。如下图。
图 14. Component 页面这时候只要点击每个 Component(模块)后面的按钮,就可以看到该模块的操作命令了。例如,我们可以停掉这台机器的 DataNode 模块。
图 15. 停止 DataNode 模块 1 图 16. 停止 DataNode 模块 2
图 16. 停止 DataNode 模块 2
关于如何给一个模块添加自定义的命令,也会在后续的连载中做介绍。
这一章节中,主要介绍了如何通过三种级别的 Action(操作)管理 Hadoop 的集群。在 Ambari 中已经加入了很多自定义的 Action 去做一些特殊的操作。如果对 Hadoop 生态圈的软件足够熟悉,就可以尝试更多的 Action。可能有的人会问,Ambari 可不可以扩容集群。答案当然是可以的。Ambari 可以给自身的集群添加机器(也就是添加 Ambari Agent),然后将 Service 的模块安装在新的机器,也可以把某些模块安装到已有的其他的机器。篇幅有限,将在后续的连载中介绍更多的内容。