使用Cloudera安装HBase,我看到有三个地方有配置信息:
/etc/hbase/conf/hbase-site.xml
,/usr/lib/hbase/conf/hbase-site.xml
,/var/run/cloudera-scm-agent/process/*-hbase-MASTER
哪一个确切有效?或者也许他们都这样做?
答案 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个目录中的哪个首先出现在类路径中。