|
云数据库应用研究从实际出发分析了传统数据库面临的问题,提出用云数据库来解决问题。对云数据库技术的发展和现状进行了阐述,分析了当前主流云数据库的特点和优势,并采用HBase 作为云数据库平台进行了实验研究。 3、实验 综上所述,决定采用HBase 做为研究云数据库的实验平台。 HBase 的安装可以分为三种模式:单机模式、伪分布式模式和完全分布式模式。文中采用完全分布式模式,这样可以模拟实际网络环境,能够体现云数据库的特性,使实验结果更具有说服力。 3.1 实验环境的搭建 在实验环境中共有6 台服务器,搭建完全分布式HDFS 与HBase 环境,采用hadoop0.20.0 与HBase0.92.0 版本,其中二台节点做为Namenode 和Master 节点,另外四台做Datanode 和RegionServer,并且在其上运行Zookeeper 服务。整个实验环境如图2 所示。 在安装Hadoop 和HBase 之前要在系统中安装JDK 并配置好环境变量。在用户目录下安装好Hadoop和HBase 之后,进入Hadoop 目录下输入命令: rm / tmp/ * bin/ hadoop namenode – format bin/ start-all.sh 来启动HDFS,可以使用bin/ hadoop dfsadmin – report来查看HDFS 的可用资源、实际使用百分比和Datanode的运行情况。 HBase 是运行在HDFS 之上的,所以必须确保HDFS 处于正常运行状态。同时因为存在版本兼容性问题,在启动HBase 之前必须让HBase 确定使用Hadoop的版本,需要把Hadoop 目录下的hadoop-0.20.2-core.jar 替换掉HBase/ lib 目录下的hadoop-core-1.0.0.jar。最后确保集群中每台的时间保持相对一致(误差小于30 秒),进入HBase 目录输入命令bin/ start-hbase.sh 启动HBase。用命令bin/ hbase shell 进入外壳程序,用命令status 查看HBase 的状态。 3.2 实验详解 在完成实验环境的搭建之后,为了对HBase 官方描述的HBase 系统具备的特性进行验证,设计了一些实验对HBase 集群进行初步的测试: 1)海量数据的存储 HBase 提供JAVA 编程API,在Eclipse 环境下编写数据库写入程序,并且递增数据写入量,查看所需的时间,对性能进行简单的分析。 根据HBase 存储的特点,因为HBase 是对Rowkey进行排序的,随机Rowkey 将被分配到不同的region上,这样能发挥出分布式数据库的优点。而Value 对于HBase 来说不会进行任何解析,其数据是否变化,对性能是不应该有任何影响的。同时为了简单起见,所有的数据都将只插入到一个表格的同一个列中。 数据插入性能测试的设计场景是这样的:取随机值的Rowkey 长度为2000 字节,值的Value 长度为4000 字节,每次插入10000 条数据,直到1000 万条结束。实验建立的表名为TestData,实验开始后可以从 http://master:60010 查看进展。 结果表明从数据刚开始写入时,只存在1 个Region,随着数据达到一定的规模之后TestData 开始分裂,并实现负载均衡,把Region 平均存放在Datanode中。 HBase 不仅支持自动的负载均衡和副本容灾机制,并且读写性能也很优秀,通过对上述实验数据写入时间的统计,数据写入速度达到0.47ms/ 条(2127 条/秒),并且在理论上还有很大的提高可能,因为实验用的数据库写入程序为单线程,没有采用MapReduce 并行编程模型。如果采用MapReduce 模型,写入速度将会有很大程度的提高。这将在以后的研究工作中得到实验验证。 2)数据库的动态扩展。 相对传统的数据库,云数据库具有近乎无限的可扩展性,可以满足不断增加的数据存储需求。在面对不断变化的条件时,云数据库可以表现出很好的弹性。为证明云数据库具有的这个优势设计了如图3 所示的实验。 首先用5 台服务器建立一个云数据库平台,其中2台Namenode 和Master,另外3 台为Datanode 和RegionServer。启动HDFS 和HBase,待系统正常运行之后查看HDFS 和HBase 状态可以得到系统中正常的Datanode 和RegionServer 都是3 个。然后,在Namenode上注册想要加入的节点IP 地址,于Hadoop 的conf目录下的slaves 文件和HBase 的conf 目录下的regionservers文件中添加新增节点描述,并把配置文件复制到整个集群的每台服务器上。用start-all.sh 命令对整个HDFS 系统进行启动,这时系统会对注册Slave 的节点进行检测。如果已经挂载那么则跳过,否则将在该节点上启动HDFS 并挂载到系统中来。再运行starthbase.sh 把新添加的RegionServer 挂载到集群中。最后,可以看到整个HDFS 和HBase 的可用节点都动态地增加了。这种动态扩展性能能够满足动态的需求并在节能方面具有很大的优势。 责编:李玉琴 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
最新专题 推荐圈子 |
|