HBase有写入数据,页面端显示无数据量

写了一个测试类,插入几条数据,测试HBase的数据量。很简单的功能,这就出现问题了。。网页端可以看到,能够看到读写请求,但是不管是内存、还是磁盘,都没有数据。

HBase有写入数据,页面端显示无数据量_第1张图片于是就想到去HDFS查看,也是有数据存在的。 

HBase有写入数据,页面端显示无数据量_第2张图片

那么有没有可能是因为数据量太小了没有显示呢?我又多追加了几条,等待了一会儿现在的数据量到了6k条。

HBase有写入数据,页面端显示无数据量_第3张图片

 再去看看HBase页面怎么样了?我们可以看到缓存中存在数据了。。。 

HBase有写入数据,页面端显示无数据量_第4张图片

 为什么缓存中存在数据,shell 中也能查询到,为什么没有落到内存中呢?

思路1:

在HDFS(Hadoop分布式文件系统)中,有一个重要的参数控制着内存达到多大时开始将数据写入磁盘,该参数为 hbase.hregion.memstore.flush.size 所以可能是文件太小,没有触发阈值。这意味着,当一个 Region 中的 MemStore 数据达到 128MB 时,将触发 Flush 操作,将 MemStore 数据刷新到磁盘的 HFile 文件中。

于是我决定在pom中修改试试。默认为 64M,将其改为1M,再追加几条try一try呢?


    128m
    

HBase有写入数据,页面端显示无数据量_第5张图片

 思路2:

将内存中的数据刷写到文件中。 

hbase(main):006:0> flush 'rmc:rmc_test'
Took 3.8114 seconds  

HBase有写入数据,页面端显示无数据量_第6张图片

总结:

 在往 HBase 中插入数据的时候,由于每插入一条数据都需要new 一个put对象,所以使用list来装在put,一个cell是一个put速度上会快很多。

你可能感兴趣的:(#,HBase,#,错误分析,hbase)