关于由Cloudera Manager管理的配置文件的差异

这是2015年Cloudera Manager Advent Calendar的第一天。

Cloudera Manager(即CM)是一个能够简化Hadoop集群安装和管理的应用程序。其架构如下,包括CM服务器和代理之间相互通信的配置。

alt

如果使用CM,不管是10个节点还是1000个节点,无论是安装Apache Kafka还是安装Apache Spark,都可以通过向导构建集群。在集群构建完成后,CM会负责分发必要的设置,如core-site.xml和hdfs-site.xml,以及配置环境变量如JAVA_HOME。此外,CM还提供基于收集的指标显示图形的功能,这使得运维效率大大提高。UI几乎全部都是日语化,这也是一个令人高兴的亮点。

在广告中,我们通常通过服务器设置和客户端设置来管理配置文件。本篇文章将以最新的CM 5.5为基础,详细解释两者之间的区别。我们参考了下面的官方文件。

Cloudera Manager 5概述

首先,设定存储在哪里呢?

在CM中,所有的设置变更都是在用户界面上进行的。

alt

然后,所有的设置内容都将保存在后端数据库中。在生产环境中,使用MySQL、PostgreSQL或Oracle是常见的选择。

参考:
Cloudera 管理器和托管服务数据存储
http://www.cloudera.com/content/www/en-us/documentation/enterprise/latest/topics/cm_ig_installing_configuring_dbs.html

参考链接提供了关于 Cloudera 管理器和托管服务数据存储的安装和配置的相关信息。

服务器设置

本题是关于服务器配置的内容。服务器配置指的是集群中实际运行的进程所使用的设置。例如,对于HDFS来说,有NameNode和DataNode,对于YARN来说,有ResourceManager和NodeManager。在CM管理的集群中,不使用init脚本来启动和停止进程,而是使用supervisord来管理进程的启动和停止。在本文中,我们将介绍进程启动时的步骤,同时看一下服务器配置是怎样的。

alt

一旦进程启动,无论对/var/run下的配置文件进行多少次更改,配置都不会生效。要使配置生效,需要从CM重新启动。如果配置已更改并且需要重新启动,则会通过以下图标进行通知。

alt

客户设定

好的,CM环境下会将配置文件分发到/var/run目录下保存的服务器设置,同时也会分发到/etc/hadoop和/etc/hive等目录下。在没有使用CM构建的环境中,通常会将所有配置文件都放在/etc目录下进行管理。在CM环境下,/etc目录下的文件只会被客户端使用。这里的客户端指的是执行hdfs dfs或hdfs dfsadmin等操作的HDFS客户端,或执行beeline的Hive客户端。通过执行”客户端配置展开”,这些设置会分发到集群主机上。

alt

如果客户端设置得到更新并需要部署,将通过以下图标进行通知。

alt

在本帖中,我简要介绍了使用CM时经常存在的服务器和客户端配置差异的疑问。在像Hadoop这样的系统中,需要多个主机相互协作才能正常运行,因此确保所有服务器进程都使用相同的配置非常重要。通过区分服务器端和客户端端的配置文件,CM可确保服务器守护程序不会在下一次启动时读取客户端因某种原因而进行的配置更改。

广告
将在 10 秒后关闭
bannerAds