java - 重启后Hbase数据被删除

标签 java hbase

我不确定发生了什么。我昨天使用以下代码在 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/

相关文章:

hadoop - 删除 HBase 中的列

hadoop - HDP中打包的HBase与Apache HBase有何不同

java - Jersey 异步 ContainerRequestFilter

java - 在java中重新调整.png图像的大小

java - 无法暂停 Activity ?

hadoop - Hive 与 HBase 相比如何?

java - HBase PrivilegedExceptionAction runAs 线程?

java - file.exists() 当文件存在时返回 false

java - 如何在java中的循环中执行查询

hbase - HBase客户端发出的SocketTimeoutException问题