HBase配置时注意的几个问题

本文介绍了配置HBase时需要注意的关键事项,包括hosts文件设置、服务端kerberos开启情况、客户端和服务端名称一致性、软件包版本匹配及具体配置参数等。
配置hbase需要注意的地方:
1.hosts文件里配置的必须是hadoop上全部节点的域名,包括没有用到的节点,原因就先不解释了
2.检查一下hbase服务端是否开启kerberos,如果没有开启则需要把本地客户端的机器名改成和服务端一致
3.hadoop、hbase、zookeeper的包的版本要和服务端相同,最好直接导出服务端的包(一般高版本的包可以兼容低版本)

static Configuration conf = null;
static {
    conf = HBaseConfiguration.create();
    conf.set("hbase.zookeeper.property.clientPort", "2181");
    conf.set("hbase.zookeeper.quorum", "hdp-nn01,hdp-nn02,hdp-dn03");//这是我用到的3个节点
    conf.set("hbase.master", "hdp-nn01:60000");
    conf.set("hbase.root.dir", "hdfs://beh/hbase");//这个根据hbase-site.xml的配置文件写
}

### HBase 配置方法及参数说明 #### 1. MemStore Flush 参数 `hbase.regionserver.optionalcacheflushinterval` 是用于控制 MemStore 定期刷新的间间隔。默认情况下,此值设置为 1 小 (3600000 毫秒),在此期间 HBase 的线程会自动触发所有 MemStore 的刷新操作[^1]。 #### 2. WAL Reader 实现类 通过 `hbase.regionserver.hlog.reader.impl` 可以指定 HLog 文件 reader 的具体实现类。默认的实现类是 `org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader`,它负责读取 Write-Ahead Log (WAL) 中的数据并将其恢复到内存中[^2]。 #### 3. RegionServer Cache 大小调整 `hbase.regionserver.global.memstore.size` 和 `hfile.block.cache.size` 是两个重要的缓存相关参数。前者定义了全局 MemStore 占用堆内存的比例,默认值为 0.4;后者则是 BlockCache 所占堆内存的比例,默认值为 0.2。对于查询密集型的应用场景,可以适当增加 `hfile.block.cache.size` 到更高的比例(如 0.5),从而提高查询性能。需要注意的是,在 MapReduce 任务扫描 HBase,建议在 Scan 类中加入 `scan.setCacheBlocks(false)` 来避免因缓存被频繁替换而导致的整体性能下降[^3]。 #### 4. Split Policy 配置 HBase 提供多种分裂策略来管理数据分布,默认采用 `IncreasingToUpperBoundRegionSplitPolicy`。在这种模式下,当某个 Region 的文件大小超过 `regionCount * regionCount * flushSize` 或者达到了最大文件尺寸 (`maxFileSize`) 后便会触发 split 操作[^4]。 以下是部分常用配置项及其作用: | **参数名称** | **描述** | |--------------|----------| | hbase.rootdir | 存储 HBase 数据的位置路径,通常位于 HDFS 上 | | hbase.zookeeper.quorum | ZooKeeper 集群地址列表 | | hbase.client.retries.number | 客户端重试次数限制 | | hbase.rpc.timeout | RPC 超长 | ```properties # Example of setting parameters in hbase-site.xml file. <configuration> <property> <name>hbase.regionserver.optionalcacheflushinterval</name> <value>7200000</value> <!-- Set to 2 hours --> </property> <property> <name>hbase.regionserver.hlog.reader.impl</name> <value>org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader</value> </property> <property> <name>hfile.block.cache.size</name> <value>0.5</value> </property> <property> <name>hbase.hregion.max.filesize</name> <value>10737418240</value> <!-- Max size per region set to 10GB --> </property> </configuration> ``` #### 总结 以上介绍了几个核心的 HBase 配置参数以及它们的作用范围。合理地调整这些参数能够显著改善系统的运行效率和稳定性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值