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