Hbase建表报错:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

本文介绍了在HBase中遇到'Master is initializing'错误时的解决方法,包括在hbase-env.sh中禁用Hadoop类路径查找,清理HDFS和ZooKeeper中的HBase数据,然后重启HBase并重新执行建表命令。

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

ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
	at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2806)
	at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2014)
	at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:659)
	at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
	at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
	at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338)
	at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318)

For usage try 'help "create"'

报错截图如下:

解决方法:

①在hbase-env.sh文件中添加如下命令:

export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true

②删除HDFS中存在的Hbase

​​​​​​​

hdfs dfs -rm -r /hbase

③删除zookeeper中存在的Hbase

rmr /hbase

重启Hbase 再进行建表命令

### 如何在 HBase Shell 中创建HBase Shell 中,`create` 是用于创建的核心命令。以下是该命令的语法以及一些具体的示例。 #### 创建的基本语法 ```plaintext hbase> create '名', {NAME => '列族名称1'}, {NAME => '列族名称2'}, ... ``` 其中: - `名` 是要创建的新的名字。 - `{NAME => '列族名称'}` 定义了一个新的列族及其属性[^5]。 #### 示例 1:简单创建一张带单个列族的 如果只需要一个简单的结构,可以只定义一个列族: ```ruby hbase> create 't1', 'f1' ``` 这条语句会创建名为 `t1` 的,并且只有一个列族 `f1`。 #### 示例 2:创建带有多个列族的 可以通过一次操作指定多个列族来构更复杂的结构: ```ruby hbase> create 't1', 'f1', 'f2', 'f3' ``` 此命令会在同一张创建三个不同的列族 `f1`, `f2`, 和 `f3`。 #### 示例 3:设置高级配置选项 除了基本的列族外,还可以通过附加参数调整列族的行为特性。例如设定版本数、TTL 或启用块缓存等: ##### 设置最大存储版本数量 ```ruby hbase> create 't1', {NAME => 'f1', VERSIONS => 5} ``` 这里设置了列族 `f1` 只保留最近的五个版本的数据。 ##### 配置数据过期时间 (TTL) ```ruby hbase> create 't1', {NAME => 'f1', TTL => 2592000} ``` 上述代码中的 `TTL` 参数示数据将在写入后的多少秒内有效;在此处设定了一个月的时间窗口(即 2592000 秒)。 ##### 启用 Block Cache 功能 对于读取频率较高的场景,议开启 block cache 来提升性能: ```ruby hbase> create 't1', {NAME => 'f1', BLOCKCACHE => true} ``` 这使得查询时能够利用内存缓冲区加速访问速度。 #### 查看已创建详情 完成之后,可以用如下指令验证其具体构成情况: ```ruby hbase> describe 't1' ``` 它返回关于目标格的所有元信息描述[^4]。 --- ###
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值