我不确定发生了什么。我昨天使用以下代码在 hbase 中创建了表。
我使用此命令启动 hbase。
hbase-2.0.0/bin$ ./start-hbase.sh
创建表的代码
private void createStudentTable(String workspace) {
List<ColumnFamilyDescriptor> colms = new ArrayList<>();
colms.add(ColumnFamilyDescriptorBuilder.of("id"));
colms.add(ColumnFamilyDescriptorBuilder.of("name"));
TableDescriptor desc = TableDescriptorBuilder.newBuilder(TableName.valueOf(workspace + "_an_data"))
.setColumnFamilies(colms)
.build();
hbaseAdmin.createTable(desc); //class variable
}
我使用命令关闭 hbase
hbase-2.0.0/bin$ ./stop-hbase.sh
关掉我的系统,第二天醒来,启动hbase。
登录到 shell,运行 list
命令结果
TABLE
0 row(s)
我是不是误会了什么? hbase不是文件内存数据库吗?是在内存中吗?
我在 DBeaver 中使用了 phoenix 驱动程序,行为相同
最佳答案
默认情况下,hbase.rootdir 位于/tmp 中,每次重新启动时都会清除该目录。更新 hbase-site.xml 以使用您选择的目录。
关于java - 重启后Hbase数据被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51119063/