修改参数
更新时间:2023-03-15
创建HBase集群后,您可以通过修改参数的方式对集群进行性能调优。
修改参数
- 登陆云数据库HBase控制台,进入您的集群
- 在侧边栏中进入“参数信息”一栏
- 选择对应的参数,将其修改成您期望的值。您可以对参数进行批量修改,避免反复重启集群
需要注意的是,一些参数需要重启集群才能生效,这可能会对集群造成一定影响。我们采用了滚动重启的方式,保证集群中的大部分节点可以正常工作。
查看参数修改历史
- 登陆云数据库HBase控制台,进入您的集群
- 在侧边栏中进入“参数修改历史”一栏,您可以查询到参数修改的历史记录
参数列表
目前开放配置的参数列表如下。需要注意的是,可配置参数范围可能在后续更新中进行修改,具体以控制台为准。
参数名 | 参数描述 |
---|---|
dfs.datanode.max.transfer.threads | 指定用于将数据传入和传出DN的最大线程数。 |
hbase.dfs.client.read.shortcircuit.buffer.size | 如果DFSClient配置dfs.client.read.shortcircuit.buffer.size未设置,我们将使用此处配置的内容作为短路读取默认直接字节缓冲区大小。DFSClient本地默认值为1MB;HBase保持其HDFS文件的打开状态,因此由于直接内存不足,文件块的数量 * 1MB很快开始增加并可能OOME。因此,我们将其设置为默认值。使其>HColumnScript中设置的默认hbase block大小,通常为64k。 |
hbase.quota.enabled | 启用限流。 |
hbase.mob.cache.evict.period | MOB文件在缓存中的存活时间,默认值为3600秒。 |
hbase.mob.file.cache.size | 最大缓存打开文件句柄数。设置一个更大的值使得每个mob缓存能够存储更多的文件句柄,并将减少频繁的文件打开和关闭,从而提升读性能。但是,如果设置得太高,可能会导致“打开的文件处理程序太多”。默认值为1000。 |
hbase.mob.cache.evict.remain.ratio | 当缓存的mob文件数超过hbase.mob.file.cache.size时,将触发逐出后仍缓存的文件的比率(介于0.0和1.0之间)。默认值为0.5f。 |
hbase.hstore.compaction.throughput.higher.bound | 聚合压缩吞吐量的目标上限(字节/秒)。允许您在PressureAwareCompactionThroughputController吞吐量控制器处于激活状态时(默认为激活状态)控制聚合压缩吞吐量需求。当Compaction压力在[0.0,1.0]范围内时,最大吞吐量将在下限和上限之间进行调整。如果压实压力为1.0或更大,则将忽略上限,直到压力恢复到正常范围。 |
hbase.hstore.compaction.throughput.lower.bound | 聚合压缩吞吐量的目标下限(字节/秒)。允许您在PressureAwareCompactionThroughputController吞吐量控制器处于激活状态时(默认为激活状态)控制聚合压缩吞吐量需求。 |
hbase.hstore.compaction.throughput.offpeak | 在非高峰时段,使用固定的吞吐量限制 |
hbase.offpeak.start.hour | 非高峰时段的开始时间,表示为0到23之间的整数(包括0和23)。设置为-1可禁用非峰值。 |
hbase.offpeak.end.hour | 非高峰时段的结束时间,表示为0到23之间的整数(包括0和23)。设置为-1可禁用非峰值。 |
hbase.hstore.compaction.throughput.tune.period | 限流调整周期,单位毫秒 |
hbase.regionserver.thread.compaction.large | large compaction线程数量 |
hbase.regionserver.thread.compaction.small | small compaction线程数量 |
hbase.coprocessor.enabled | 启用或禁用协处理器加载。如果“false”(禁用),将忽略任何其他与协处理器相关的配置。 |
hbase.coprocessor.user.enabled | 启用或禁用用户(又名table)协处理器加载。如果“false”(禁用),则将忽略表描述符中的任何表协处理器属性。如果“hbase.coprocessor.enabled”为“false”,则此设置无效。 |
hbase.coprocessor.region.classes | 默认情况下在所有表上加载的区域观察器或端点协处理器的逗号分隔列表。对于任何重写协处理器方法,这些类将被顺序调用。实现自己的协处理器后,将其添加到HBase的类路径中,并在此处添加完全限定的类名。还可以通过设置HTableDescriptor或HBase shell按需加载协处理器。 |
hbase.coprocessor.master.classes | 一个逗号分隔的org.apache.hadoop.hbase.coprocessor.MasterObserver协处理器列表,默认加载到active HMaster进程上。对于任何重写协处理器方法,这些类将被顺序调用。在实现自己的MasterObserver之后,只需将其放入HBase的类路径中,并在此处添加完全限定的类名。 |
hbase.coprocessor.regionserver.classes | 由region server加载的协处理器的逗号分隔列表 |
hbase.master.loadbalancer.class | 用于执行负载均衡的类。 |
hbase.hstore.flusher.count | flush线程数。如果线程不足,Memstore flush操作将被加入等待队列。如果线程足够,memstore flush操作可以并行执行,增加HDFS读取速率,同时可能会增加compaction次数。 |
hbase.region.replica.replication.enabled | 是否启用到Secondary region replica。我们有一个单独的实现来不使用通用的集群间复制框架的WAL复制,因此现在我们不会添加任何replication peer。 |
hbase.regionserver.storefile.refresh.period | 刷新secondary region的存储文件的时间段(以毫秒为单位)。0表示此功能已禁用。一旦secondary region刷新region中的文件列表,secondary region就会看到来自primary region的新文件(来自flush和compaction)。但过于频繁的flush可能会导致额外的Namenode压力。如果文件刷新时间超过HFile TTL(hbase.master.hfilecleaner.TTL),则拒绝请求。建议使用此设置将HFile TTL配置为更大的值。 |
hbase.wal.provider | 使用配置设置“hbase.wal.provider”配置使用哪个wal提供程序。 |
hbase.wal.regiongrouping.strategy | region分组策略,每个region group将会拥有一个WAL |
hbase.wal.regiongrouping.numgroups | bounded分组策略下,region group的最大数量 |
hbase.master.logcleaner.ttl | WAL被主线程清理前在archive目录中能够保留的时间长度。该值以毫秒为单位。 |
hbase.master.hfilecleaner.ttl | HFile被主线程清理前在archive目录中能够保留的时间长度。该值以毫秒为单位。 |