我的应用程序连接到HBase并进行大量通信(每秒数百或数千次读/写)。这极大地影响了性能,可能是由于HBase对每个请求都进行了I / O操作。
Doo.dle
是对我的代码的调用 - 蓝色和红色之间的差异是HBase消耗的时间。
目前,我只在独立模式下进行测试,其中HBase使用本地文件系统存储数据。我想知道,在具有实际HDFS的分布式模式下使用一个是否可以显着提高性能,或者只是产生相同的结果。我想要在失去太多时间让群集启动并运行之前找到线索。
我自问的第二个问题是,是否可以将独立的HBase配置为仅将数据保存到内存(RAM),而不是将其写入文件系统以进行性能测量。
答案 0 :(得分:1)
在独立模式下,HBase不使用HDFS,它在同一个JVM中运行所有HBase守护进程和本地ZooKeeper
在伪分布式模式下,Hbase可以针对本地文件系统运行,也可以针对Hadoop分布式文件系统的实例运行。因此,考虑到性能,独立和伪分布之间没有区别。
完全分布式模式需要使用HDFS,这意味着任务将在作业上运行,并且根据我的经验需要时间。
因此,在具有实际HDFS的完全分布式模式下使用Hbase可以显着提高性能。