通过cloudera安装hbase,我看到三个地方有配置信息: /etc/hbase/conf/hbase-site.xml , /usr/lib/hbase/conf/hbase-site.xml ,以及 /var/run/cloudera-scm-agent/process/*-hbase-MASTER 到底哪一个有效?或者他们都是?
/etc/hbase/conf/hbase-site.xml
/usr/lib/hbase/conf/hbase-site.xml
/var/run/cloudera-scm-agent/process/*-hbase-MASTER
rwqw0loc1#
在所有hbase的情况下 /etc/hbase/conf/hbase-site.xml 始终读取文件。这个 /usr/lib/hbase/conf/hbase-site.xml 是指向的符号链接 /etc/hbase/conf/hbase-site.xml 所以它是同一个文件。最后,有什么事吗 /var/run/ 是一个运行时变量,在您的示例中是cloudera管理器代理。manager代理负责管理控制台和日志记录以及其他任务。希望对你有帮助,帕特
/var/run/
ujv3wf0j2#
使用的配置文件是/usr/lib/hbase/conf/hbase-site.xml。其他文件不是符号链接。由于相同的配置信息需要用于其他进程,如hmaster、regionserver,/usr/lib/hbase/conf/hbase-site.xml文件在初始化/预处理这些守护进程时在不同的位置同步。因此,建议只在/usr/lib/hbase/conf/hbase-site.xml文件中进行任何配置更改。您还需要对集群中所有节点上的这些文件进行相同的更改,并重新启动hbase守护进程。我希望这些能回答你的问题。
qyyhg6bp3#
根据我的搜索和学习,hbase实际上有两种类型的 hbase-site.xml 文件,一个用于hmaster/regionserver,另一个用于client。在cloudera的发行版中 hbase-site.xml 文件夹中的文件 /var/run/cloudera-scm-agent/process/*-hbase-MASTER 正在运行的hmaster进程使用的配置。regionserver也类似。然而 site.xml 文件位于 /usr/lib/hbase/conf/ 以及 /etc/hbase/conf/ ,从一个符号链接到另一个(根据@apesa),用于客户端使用。如果启动hbase shell 在hmaster主机或regionserver主机上,将使用此客户端配置文件 shell 应用程序知道如何连接到zookeeper仲裁以获取正在运行的hbase服务。如果要从客户机主机使用hbase服务,则需要将此客户机xml文件复制到客户机主机。对于hbase的常规apache安装,如sachin的回答所示,相同的 hbase-site.xml 尽管hmaster、regionserver和client进程将只使用所需的选项,而忽略其余的选项,但它同时用于这两个目的。
hbase-site.xml
site.xml
/usr/lib/hbase/conf/
/etc/hbase/conf/
shell
gopyfrb34#
从实验 hbase 二进制版本 1.2.0-cdh5.16.1 ,它似乎使用java类路径来查找 hbase-site.xml 要使用的文件,无论是作为服务器还是客户端shell运行。有一个配置参数( --config )你可以传给 hbase 控制使用的配置目录,默认情况下为 ./conf (运行 hbase 查看有关此的文档帮助)。这一观点得到了关于这一主题的其他答案的支持(例如问题14327367)。因此,要回答您的特定问题,确定在您的计算机上使用哪个配置文件,请运行 hbase classpath 并找出3个目录中的哪个首先出现在类路径中。
hbase
1.2.0-cdh5.16.1
--config
./conf
hbase classpath
4条答案
按热度按时间rwqw0loc1#
在所有hbase的情况下
/etc/hbase/conf/hbase-site.xml
始终读取文件。这个/usr/lib/hbase/conf/hbase-site.xml
是指向的符号链接/etc/hbase/conf/hbase-site.xml
所以它是同一个文件。最后,有什么事吗
/var/run/
是一个运行时变量,在您的示例中是cloudera管理器代理。manager代理负责管理控制台和日志记录以及其他任务。希望对你有帮助,帕特
ujv3wf0j2#
使用的配置文件是/usr/lib/hbase/conf/hbase-site.xml。
其他文件不是符号链接。
由于相同的配置信息需要用于其他进程,如hmaster、regionserver,/usr/lib/hbase/conf/hbase-site.xml文件在初始化/预处理这些守护进程时在不同的位置同步。因此,建议只在/usr/lib/hbase/conf/hbase-site.xml文件中进行任何配置更改。
您还需要对集群中所有节点上的这些文件进行相同的更改,并重新启动hbase守护进程。我希望这些能回答你的问题。
qyyhg6bp3#
根据我的搜索和学习,hbase实际上有两种类型的
hbase-site.xml
文件,一个用于hmaster/regionserver,另一个用于client。在cloudera的发行版中
hbase-site.xml
文件夹中的文件/var/run/cloudera-scm-agent/process/*-hbase-MASTER
正在运行的hmaster进程使用的配置。regionserver也类似。然而
site.xml
文件位于/usr/lib/hbase/conf/
以及/etc/hbase/conf/
,从一个符号链接到另一个(根据@apesa),用于客户端使用。如果启动hbaseshell
在hmaster主机或regionserver主机上,将使用此客户端配置文件shell
应用程序知道如何连接到zookeeper仲裁以获取正在运行的hbase服务。如果要从客户机主机使用hbase服务,则需要将此客户机xml文件复制到客户机主机。对于hbase的常规apache安装,如sachin的回答所示,相同的
hbase-site.xml
尽管hmaster、regionserver和client进程将只使用所需的选项,而忽略其余的选项,但它同时用于这两个目的。gopyfrb34#
从实验
hbase
二进制版本1.2.0-cdh5.16.1
,它似乎使用java类路径来查找hbase-site.xml
要使用的文件,无论是作为服务器还是客户端shell运行。有一个配置参数(--config
)你可以传给hbase
控制使用的配置目录,默认情况下为./conf
(运行hbase
查看有关此的文档帮助)。这一观点得到了关于这一主题的其他答案的支持(例如问题14327367)。
因此,要回答您的特定问题,确定在您的计算机上使用哪个配置文件,请运行
hbase classpath
并找出3个目录中的哪个首先出现在类路径中。