java hbase 配置文件_hbase 默认配置文件

本文介绍了HBase的配置文件,重点讲解了hbase-site.xml和hbase-default.xml的作用。hbase-site.xml用于存放特定于站点的自定义配置,而hbase-default.xml包含默认配置属性。讨论了如hbase.rootdir、hbase.cluster.distributed等关键配置项,强调了集群配置变更需重启以生效。此外,还提到了ZooKeeper的相关配置以及客户端连接HBase的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考官方文档:

7.1 hbase-site.xml和hbase-default.xml

就像在Hadoop中将特定于站点的HDFS配置添加到hdfs-site.xml文件中一样,对于HBase,特定于站点的自定义项也放入conf / hbase-site.xml文件中。 有关可配置属性的列表,请参见下面的hbase默认配置,或在src/main/ resources的HBase源代码中查看原始的hbase-default.xml源文件。

并非所有配置选项都将其显示在hbase-default.xml中。 有些配置只会出现在源代码中。 识别这些更改的唯一方法是通过代码审查。

目前,此处的更改将要求HBase重新启动群集以注意到更改(更改配置需要重启集群)。

7.2 HBase 默认配置

以下文档是使用默认的hbase配置文件hbase-default.xml作为源生成的。

hbase.tmp.dir

本地文件系统上的临时目录。 更改此设置以指向比'/ tmp' 更永久的位置(java.io.tmpdir的通用解析方法),因为在重新启动计算机时会清理'/ tmp'目录。

默认:

${java.io.tmpdir}/hbase-${user.name}

hbase.rootdir

区域服务器共享的目录,HBase保留在该目录中。 URL应该是“完全限定”的,以包括文件系统方案。 例如,要指定HDFS目录“ / hbase”,其中HDFS实例的namenode在端口9000上的http://namenode.example.org上运行,请将此值设置为:hdfs://http://namenode.example.org:9000 / hbase。 默认情况下,我们会写入$ {hbase.tmp.dir}(通常是/ tmp),因此请更改此配置,否则所有数据都会在计算机重新启动时丢失。

默认值:

${hbase.tmp.dir}/hbase

hbase.cluster.distributed

群集将处于的模式。对于独立模式,值为false;对于分布式模式,值为true。 如果为false,则启动将在一个JVM中同时运行所有HBase和ZooKeeper守护程序。

默认值

false

hbase.zookeeper.quorum

ZooKeeper集合中服务器的逗号分隔列表(此配置应已命名为hbase.zookeeper.ensemble)。 例如,“ http://host1.mydomain.com,http://host2.mydomain.com,host3.mydomain.com”。 默认情况下,对于本地和伪分布式操作模式,此选项设置为localhost。 对于完全分布式的设置,应将其设置为ZooKeeper集服务器的完整列表。 如果在hbase-env.sh中设置了HBASE_MANAGES_ZK,则这是hbase在集群启动/停止过程中将启动/停止ZooKeeper的服务器列表。 在客户端,我们将使用此列表,并将其与hbase.zookeeper.property.clientPort配置放在一起。 并将其作为connectString参数传递到zookeeper构造函数中。

默认值 localhost

zookeeper.recovery.retry.maxsleeptime

重试zookeeper 操作之前的最大睡眠时间(以毫秒为单位),此处需要一个最大时间,以使睡眠时间不会无限制地增长

默认值 6000

hbase.local.dir

本地文件系统上用作本地存储的目录

默认值

${hbase.tmp.dir}/local/

hbase.master.port

HBase Master 应该绑定的端口

默认值 16000

hbase.master.info.port

HBase Master Web UI的端口。 如果不希望运行UI实例,则设置为-1。

hbase.master.info.bindAddress

HBase Master Web UI绑定的地址。默认是 0.0.0.0

hbase.regionserver.port

HBase RegionServer 绑定的端口

默认值是 16020

hbase.regionserver.info.port

如果您不希望运行RegionServer UI,请将HBase RegionServer Web UI的端口设置为-1。

默认是 16030

hbase.regionserver.info.bindAddress

HBase RegionServer web UI 的地址

默认是 0.0.0.0

hbase.regionserver.handler.count

在RegionServer上旋转的RPC侦听器实例数。 主机将相同的属性用于主机处理程序的数目。 过多的处理程序可能适得其反。 使它成为CPU数的倍数。 如果大多数情况下是只读的,则处理程序计数接近cpu数的效果很好。 从两倍的CPU数开始调整。

默认是 30

hbase.regionserver.msginterval

从RegionServer到Master的消息之间的时间间隔(以毫秒为单位)。

默认是 3000

hbase.regionserver.logroll.period

无论有多少edits,我们都将滚动提交日志的时间。

默认值 3600000

hbase.regionserver.logroll.errors.tolerated

在触发服务器异常终止之前,我们将允许的连续WAL关闭的错误数。 如果在日志滚动过程中关闭当前WAL编写器失败,则设置为0将导致区域服务器中止。 甚至很小的值(2或3)能使区域服务器克服瞬态HDFS错误。

默认值 2

hbase.regionserver.optionalcacheflushinterval

edit内容在自动刷新之前在内存中保留的最长时间。 默认值1小时。 将其设置为0以禁用自动刷新。

默认值 3600000

hbase.regionserver.regionSplitLimit

区域数量的限制,之后将不再进行区域拆分。 这不是对区域数量的硬限制,但可作为区域服务器在特定限制后停止拆分的准则。

默认设置为1000。

zookeeper.session.timeout

ZooKeeper会话超时(以毫秒为单位)。 它以两种不同的方式使用。 首先,在HBase用于连接到集成体的ZK客户端中使用此值。 HBase在启动ZK服务器时也使用它,并将其作为“ maxSessionTimeout”传递。 例如,如果HBase区域服务器连接到同样由HBase管理的ZK集合,则会话超时将是此配置指定的会话超时时间。 但是,连接到使用其他配置管理的集成服务器的区域服务器将受到该集成服务器的maxSessionTimeout的影响。 因此,即使HBase可能建议使用90秒,该集合的最大超时值也可以低于此值,并且它将具有优先权。 ZK随附的当前默认maxSessionTimeout为40秒,低于HBase的默认值。

默认值 90000

zookeeper.znode.parent

ZooKeeper中用于HBase的根ZNode。所有HBase的ZooKeeper文件都将位于此节点下配置的相对路径中。 默认情况下,所有HBase的ZooKeeper文件路径都配置有相对路径,因此除非更改,否则它们都将位于此目录下。

默认值 /hbase

hbase.balancer.period

区域平衡器在主服务器中运行的时间周期。

默认值 300000

hbase.hstore.flusher.count

刷新线程数。 如果线程较少,则将对MemStore刷新进行排队。 如果线程更多,则刷新将并行执行,从而增加了HDFS的负载,也可能导致更多的压缩。

默认值 2

hfile.block.cache.size

分配给StoreFile使用的块缓存的最大堆的百分比(-Xmx设置)。 默认值为0.4表示分配40%。 设置为0即可禁用,但不建议这样做; 您至少需要足够的缓存来保存存储文件索引。

默认值:0.4

hbase.rest.port

HBase REST 服务器的端口

8080

hbase.http.max.threads

HTTP Server将在其ThreadPool中创建的最大线程数。

默认是16

hbase.replication.source.maxthreads

任何复制源用于将edit并行传送到接收器的最大线程数。 这也限制了每个复制批处理分成的块数。 较大的值可以提高主群集和从群集之间的复制吞吐量。 默认值10几乎不需要更改。

默认:10

log4j.properties

编辑此文件以更改HBase文件的滚动速率并更改HBase日志消息的级别。

尽管可以通过HBase UI更改特定守护程序的日志级别,但此处的更改将要求HBase重新启动集群以注意到更改。

如果您以独立模式运行HBase,则无需配置任何内容即可让客户端正常工作,只要它们都在同一台计算机上即可。

由于HBase Master可能会四处移动,因此客户端可以通过向ZooKeeper查找当前的关键位置来进行引导。 ZooKeeper保留所有这些值的位置。 因此,客户在执行其他任何操作之前,需要先确定ZooKeeper集合的位置。 通常,此集合位置保留在hbase-site.xml中,并由客户端从CLASSPATH中取得。

对于使用Maven的Java应用程序,建议在连接到集群时包括hbase-shaded-client模块依赖项:

org.apache.hbase

hbase-shaded-client

2.0.0

仅用于客户端的基本示例hbase-site.xml可能如下所示:

hbase.zookeeper.quorum

example1,example2,example3

The directory shared by region servers.

java 客户端配置

Java客户端使用的配置保留在HBaseConfiguration实例中。

HBaseConfiguration上的工厂方法HBaseConfiguration.create();在调用时将读取在客户端的CLASSPATH上找到的第一个hbase-site.xml的内容(如果存在的话)(调用还将包括任何找到的hbase-default.xml;在hbase.XXXjar中附带了一个hbase-default.xml。 也可以直接指定配置,而不必从hbase-site.xml中读取。 例如,以编程方式为集群设置ZooKeeper集成,请执行以下操作:

Configuration config = HBaseConfiguration.create();

config.set("hbase.zookeeper.quorum", "localhost"); // Here we are running zookeeper locally

如果多个ZooKeeper实例组成了ZooKeeper集合,则可以在用逗号分隔的列表中指定它们(就像在hbase-site.xml文件中一样)。 然后可以将此填充的Configuration实例传递到表,依此类推。

超时设置

HBase提供了各种各样的超时设置,以限制各种远程操作的执行时间。hbase.rpc.timeout

hbase.rpc.read.timeout

hbase.rpc.write.timeout

hbase.client.operation.timeout

hbase.client.meta.operation.timeout

hbase.client.scanner.timeout.period

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值