珠海品牌网站建设,免费个人网站建设哪里好,wordpress 安装 白屏,铝型材网络机柜设计报告写了一个测试类#xff0c;插入几条数据#xff0c;测试HBase的数据量。很简单的功能#xff0c;这就出现问题了。。网页端可以看到#xff0c;能够看到读写请求#xff0c;但是不管是内存、还是磁盘#xff0c;都没有数据。
于是就想到去HDFS查看#xff0c;也是有数据…写了一个测试类插入几条数据测试HBase的数据量。很简单的功能这就出现问题了。。网页端可以看到能够看到读写请求但是不管是内存、还是磁盘都没有数据。
于是就想到去HDFS查看也是有数据存在的。 那么有没有可能是因为数据量太小了没有显示呢我又多追加了几条等待了一会儿现在的数据量到了6k条。 再去看看HBase页面怎么样了我们可以看到缓存中存在数据了。。。 为什么缓存中存在数据shell 中也能查询到为什么没有落到内存中呢
思路1
在HDFSHadoop分布式文件系统中有一个重要的参数控制着内存达到多大时开始将数据写入磁盘该参数为 hbase.hregion.memstore.flush.size 所以可能是文件太小没有触发阈值。这意味着当一个 Region 中的 MemStore 数据达到 128MB 时将触发 Flush 操作将 MemStore 数据刷新到磁盘的 HFile 文件中。
于是我决定在pom中修改试试。默认为 64M将其改为1M再追加几条try一try呢
propertieshbase.hregion.memstore.flush.size128m/hbase.hregion.memstore.flush.size!-- 其他的属性配置 --
/properties 思路2
将内存中的数据刷写到文件中。
hbase(main):006:0 flush rmc:rmc_test
Took 3.8114 seconds 总结 在往 HBase 中插入数据的时候由于每插入一条数据都需要new 一个put对象所以使用list来装在put一个cell是一个put速度上会快很多。