【问题标题】:HBase standalone performance vs. running on an HDFS clusterHBase 独立性能与在 HDFS 集群上运行
【发布时间】:2015-04-07 14:47:10
【问题描述】:

我的应用程序连接到 HBase 并进行大量通信(每秒数百或数千次读取/写入)。这会极大地影响性能,可能是由于 HBase 对每个请求执行的 I/O 操作。

Doo.dle 是对我的代码的调用 - 蓝色和红色之间的差异是 HBase 消耗的时间。

目前,我只在独立模式下进行了测试,其中 HBase 使用本地文件系统存储数据。我想知道,在分布式模式下使用一个实际的 HDFS 是否可以显着提高性能,或者只是产生相同的结果。我试图在浪费太多时间来启动和运行集群之前找到线索。

我问自己的第二个问题是,是否可以将独立 HBase 配置为仅将数据保存到内存 (RAM) 而不是将其写入文件系统以进行性能测量。

【问题讨论】:

    标签: hadoop hbase hdfs


    【解决方案1】:

    在独立模式下,HBase 不使用 HDFS 它在同一个 JVM 中运行所有 HBase 守护进程和一个本地 ZooKeeper

    在伪分布式模式下,Hbase 可以针对本地文件系统运行,也可以针对 Hadoop 分布式文件系统的实例运行。所以考虑到性能,单机和伪分布式没有区别。

    完全分布式模式需要使用 HDFS,这意味着任务将在作业上运行,根据我的经验,这需要时间。

    因此,在完全分布式模式下使用 Hbase 和实际的 HDFS 可以显着提高性能。

    【讨论】:

    • 那么,我说对了吗? Standalone-HBase 直接将数据写入文件系统,而集群化的 HBase 创建(MapReduce-)作业,将数据分布在集群节点上。这更快,因为它是异步运行的。 (我真的是 HBase/Hadoop 的新手……)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多