`
lingqi1818
  • 浏览: 252038 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hbase-0.20.6数据写入服务端代码性能瓶颈分析

阅读更多

目前我的实际配置是4台8核CPU,装4个regionServer,同时读写CPU load维持在4左右,iostat查看,数据写入率也很低。

所以只能从代码层面粗略分析下:

其实hbase写入的过程大方向还是比较简单的:

1.如果有必要刷新MemStoreMemory,这个过程会短暂的持有锁,因为需要做一些CPU中的计算,(我个人觉得问题不是很大),因为作为大头的compactionRequested是异步线程去执行的。

2.写入到MemStoreMemory,这边会持有splitsAndClosesLock的读锁,不过该锁只在close的时候会去获取写锁。

3.接着持有updatesLock读锁。这把锁就很危险了,因为前面讲过,如果flushcache的事件被触发的话,那么flushRegion的时候就会拿到updatesLock读锁。这边就会卡住很长一段时间了。

4.将数据写入到memStoreMemory,这个过程在begin和complete阶段会对writeQueue进行同步。不过应该不是性能瓶颈的关键。

  

 

接下去是分析写的过程:

 

在读取的时候获取scanner的时候会持有newScannerLock读锁。但是在flushcache的时候会持有newScannerLock写锁,这边也是个严重的问题。

 

总结:

分析了以上过程,关键的问题还是在于MemStoreMemory太小,不断刷新,在写入的时候导致updatesLock处卡住。读取会在newScannerLock处卡住。

 

要解决这个问题就得增加MemStoreMemory的大小,并且增加机器数量,否则只能是杯水车薪了。。。

 

应该是flush影响读和写。
split影响写
那么,我们可以通过减少flush的过程(但是会增加单次flush时间),达到提升读的性能,牺牲部分写入的时间

 

具体是否这样稍后回去实际跑测一下再回来阐述。

分享到:
评论

相关推荐

    hbase-0.20.6.jar

    这个jar包是eclipse开发hbase相关数据接口的一个关键jar包。

    hbase-0.20.6.tar.gz

    hadoop-0.20.2与hbase-0.20.6为比较稳定的配置版本 HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

    java 访问Hbase 使用的jar包 和 hbase-0.20.6 api

    Java Hbase jar api hbase-0.20.6.jar hadoop-core-0.20.1.jar commons-logging-1.1.1.jar zookeeper-3.3.0.jar log4j-1.2.91.jar

    HBASE-0.20.6_API.CHM

    自己制作的一个简单的HBase的API.便于使用。

    hbase-meta-repair-hbase-2.0.2.jar

    HBase 元数据修复工具包。 ①修改 jar 包中的application.properties,重点是 zookeeper.address、zookeeper.nodeParent、hdfs....③开始修复 `java -jar -Drepair.tableName=表名 hbase-meta-repair-hbase-2.0.2.jar`

    phoenix-core-4.7.0-HBase-1.1-API文档-中文版.zip

    赠送源代码:phoenix-core-4.7.0-HBase-1.1-sources.jar; 赠送Maven依赖信息文件:phoenix-core-4.7.0-HBase-1.1.pom; 包含翻译后的API文档:phoenix-core-4.7.0-HBase-1.1-javadoc-API文档-中文(简体)版.zip; ...

    hbase-sdk是基于hbase-client和hbase-thrift的原生API封装的一款轻量级的HBase ORM框架

    hbase-sdk是基于hbase-client和hbase-thrift的原生API封装的一款轻量级的HBase ORM框架。 针对HBase各版本API(1.x~2.x)间的差异,在其上剥离出了一层统一的抽象。并提供了以类SQL的方式来读写HBase表中的数据。对...

    phoenix-hbase-1.4-4.16.1-bin

    总的来说,"phoenix-hbase-1.4-4.16.1-bin"为HBase引入了SQL的便利性,使得大数据分析更为高效。但使用时也需注意其与HBase的交互机制,以及如何优化查询以适应分布式环境。通过深入理解和实践,开发者可以充分利用...

    hbase-1.2.1-bin.tar.gz.zip

    总之,HBase-1.2.1的二进制压缩包提供了在Hadoop环境下部署和运行HBase所需的所有组件,适用于处理大量非结构化或半结构化数据的场景,如实时分析、日志处理、物联网应用等。正确解压并配置后,用户可以充分利用...

    phoenix-5.0.0-HBase-2.0-client

    "phoenix-5.0.0-HBase-2.0-client.jar" 文件就是Squirrel SQL Client为了连接和操作Phoenix在HBase上的数据所必需的库文件。 Phoenix是一个高性能的关系型SQL层,构建在HBase之上,旨在解决HBase上的复杂查询和大...

    phoenix-hbase-2.2-5.1.2-bin.tar.gz

    总的来说,`phoenix-hbase-2.2-5.1.2-bin.tar.gz`是大数据存储和分析领域的重要工具,它结合了HBase的分布式存储能力和Phoenix的SQL查询能力,为大数据处理提供了一种高效、易用的解决方案。无论是对大数据新手还是...

    hbase的hbase-1.2.0-cdh5.14.2.tar.gz资源包

    `hbase-1.2.0-cdh5.14.2.tar.gz` 是针对Cloudera Distribution Including Apache Hadoop (CDH) 5.14.2的一个特定版本的HBase打包文件。CDH是一个流行的Hadoop发行版,包含了多个大数据组件,如HDFS、MapReduce、YARN...

    HBase(hbase-2.4.9-bin.tar.gz)

    HBase(hbase-2.4.9-bin.tar.gz)是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...

    phoenix-hbase-2.4-5.1.2

    《Phoenix与HBase的深度解析:基于phoenix-hbase-2.4-5.1.2版本》 在大数据处理领域,Apache HBase和Phoenix是两个至关重要的组件。HBase作为一个分布式、列式存储的NoSQL数据库,为海量数据提供了高效、实时的访问...

    hbase-2.4.17-bin 安装包

    这个“hbase-2.4.17-bin”安装包提供了HBase的最新稳定版本2.4.17,适用于大数据处理和分析场景。下面将详细介绍HBase的核心概念、安装步骤以及配置和管理。 一、HBase核心概念 1. 表(Table):HBase中的表是由行...

    hbase-client-2.1.0-cdh6.3.0.jar

    hbase-client-2.1.0-cdh6.3.0.jar

    hbase-2.4.11-bin.tar.gz

    标题中的“hbase-2.4.11-bin.tar.gz”是指HBase的2.4.11稳定版本的二进制压缩包,用户可以通过下载这个文件来进行安装和部署。 HBase的核心设计理念是将数据按照行和列进行组织,这种模式使得数据查询和操作更加...

    phoenix-client-hbase-2.2-5.1.2.jar

    phoenix-client-hbase-2.2-5.1.2.jar

    hbase-1.3.1-bin.tar.gz.7z

    进入 `conf` 目录,复制 `hbase-site.xml.example` 文件为 `hbase-site.xml`,并编辑该文件,添加如下配置: ```xml <name>hbase.rootdir <value>hdfs://namenode_host:port/hbase <name>hbase.cluster....

    hbase-hadoop-compat-1.1.3-API文档-中文版.zip

    赠送源代码:hbase-hadoop-compat-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop-compat-1.1.3.pom; 包含翻译后的API文档:hbase-hadoop-compat-1.1.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:...

Global site tag (gtag.js) - Google Analytics