Cloudera安装的不同hbase-site.xml之间的关系

时间:2014-07-28 04:33:50

标签: configuration hbase cloudera

使用Cloudera安装HBase,我看到有三个地方有配置信息:

  1. /etc/hbase/conf/hbase-site.xml
  2. /usr/lib/hbase/conf/hbase-site.xml
  3. /var/run/cloudera-scm-agent/process/*-hbase-MASTER
  4. 哪一个确切有效?或者也许他们都这样做?

4 个答案:

答案 0 :(得分:1)

在hbase的所有情况下,始终会读取/etc/hbase/conf/hbase-site.xml文件。 /usr/lib/hbase/conf/hbase-site.xml/etc/hbase/conf/hbase-site.xml的符号链接,因此它是同一个文件。

最后,/var/run/中的任何内容都是运行时变量,在您的情况下,它是Cloudera Manager Agent。 Manager Agents负责管理控制台和日志记录等工作。

我希望有帮助, 专利

答案 1 :(得分:0)

使用的配置文件是 /usr/lib/hbase/conf/hbase-site.xml

其他文件不是符号链接。

由于需要将相同的配置信息用于其他进程(如HMaster,RegionServer),因此在初始化/预处理这些守护进程时,会在不同位置同步/usr/lib/hbase/conf/hbase-site.xml文件。因此,建议仅在 /usr/lib/hbase/conf/hbase-site.xml 文件中进行任何配置更改。

此外,您需要在群集中的所有节点上对这些文件进行相同的更改,然后重新启动HBase守护程序。 我希望这些能回答你的问题。

答案 2 :(得分:0)

根据我的搜索和学习,HBase实际上有两种类型的hbase-site.xml文件,一种用于HMaster / RegionServer,另一种用于客户端。

在Cloudera的发行版中,文件夹hbase-site.xml中的/var/run/cloudera-scm-agent/process/*-hbase-MASTER文件是正在运行的HMaster进程使用的配置。类似于RegionServer。

然而,site.xml/usr/lib/hbase/conf/下的/etc/hbase/conf/文件,从一个符号链接到另一个符号(根据@apesa),用于客户端使用。如果在HMaster主机或RegionServer主机上启动HBase shell,将使用此客户端配置文件,以便shell应用程序知道如何连接到ZooKeeper仲裁以获取正在运行的HBase服务。如果想要从客户端主机使用HBase服务,则需要将此客户端xml文件复制到客户端主机。

对于HBase的常规Apache安装,如Sachin的回答所示,同样的hbase-site.xml用于这两个目的,尽管HMaster,RegionServer和客户端进程将仅使用选项需要而忽略其余部分。

答案 3 :(得分:0)

通过尝试使用hbase二进制版本1.2.0-cdh5.16.1,看来无论是作为服务器还是客户端Shell运行,它都使用Java类路径来查找要使用的hbase-site.xml文件。您可以通过一个配置参数(--config来传递给hbase来控制使用的配置目录,默认情况下该目录为./conf(运行hbase可以查看文档中的帮助这个)。

该观察结果得到有关此主题的其他答案的支持(例如Question 14327367)。

因此,要回答您的特定问题,确定您的计算机上使用了哪个配置文件,请运行hbase classpath并查找3个目录中的哪个首先出现在类路径中。