您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Hbase单点故障测试方案
1目的构建一个和实际环境相似的仿真环境,对主、从节点宕机情况下的Hbase数据插入情况进行验证。2测试环境为便于实验中节点个数的扩展及配置更改,测试环境中各个节点采用运行在真实物理服务器上,一共5台,具体配置如下:节点配置表节点名角色IP地址软件配置配置文件硬件配置hadoopDN00hbase主master192.168.11.12Centos5.664位Hadoop-0.20.1-devHbase-0.90.3hadoopDN01hbase备用master192.168.11.14同上同上hadoopNN02zookeeperNode/HRegionsever192.168.11.16同上同上hadoopDN03zookeeperNode/HRegionsever192.168.11.18同上同上hadoopDN04zookeeperNode/HRegionsever192.168.11.20同上同上192.168.11.12——192.168.11.20是hdfs的datanodeHdfs的namenode为192.168.11.8主机名为hadoopNN00搭建时间同步服务器:如果集群时间不同步,且相差时间超出了hbase默认的3分钟,与master时间差超过3分钟的HRegionserver无法启动。这时候需要架设时间服务器使系统时间同步:搭建时间同步服务器1、检查ntp服务器有没有安装:rpm-qantpcentOS默认安装2、开启ntp服务器[root@testinit.d]#pwd/etc/rc.d/init.d[root@testinit.d]#./ntpdstartstartingntpd:[OK]3、修改ntp.conf配置文件vi/etc/ntp.conf①、第一种配置:允许任何IP的客户机都可以进行时间同步将“restrictdefaultkodnomodifynotrapnopeernoquery”这行修改成:restrictdefaultnomodify②、第二种配置:只允许192.168.11.***网段的客户机进行时间同步在restrictdefaultnomodifynotrapnoquery(表示默认拒绝所有IP的时间同步)之后增加一行:restrict192.168.11.0mask255.255.255.0nomodify客户端:ntpdate服务器端ip地址(例:192.168.11.8)如果显示theNTPsocketisinuse,exiting[root@testinit.d]#pwd/etc/rc.d/init.d[root@testinit.d]#./ntpdstopShuttingdownntpd:[OK]然后ntpdate服务器端ip地址(注:服务器端开启ntp,客户端关闭ntp)3异常处理机制测试Hmaster节点宕机的实验主要设计了以下几种异常情况。具体解决方案如下:1、配置好Hbase,kill掉主Hmaster进程。2、插入数据5百万条数据,在插入数据的同时kill掉主Hmaster进程。3、在切换Hmaster过程中插入数据,看能否新建表。4、HBase性能调优后,master的切换时间。动态扩展场景实验描述如下,配置好Hbase,配置另外一台机器分别开机自启动Hmaster和Hregionserver,验证能否随时加入Hmaster和Hregionserver。3.1Hmaster切换测试过程如下:1,启动Hbase:start-hbase.sh,会同时启动命令执行机器上的Hmaster,此机器作为主master。2,启动备用Hmaster:hbase-daemon.shstartmaster。启动一个备用master,实际工作的是主master。3,当主master机器宕机或者kill掉主master上的Hmaster进程后。备用master接管主master。测试在11:20kill掉Hmaster查看Hregionserver上的日志日志提示在11:21:36,检测到主master失效,之后一直提示无法连接master,直到检测到新的master。在11:23:46,master切换成功,regionserver可以连接此master。在11:24:36,regionserver提交自身信息过程,备用master可以正常使用切换的过程如下:1主master宕机2zookeeper集群检测masterdown掉了,zookeeper选举出一个协调者,由协调者在备用的master中指定一个接管主master任务3Zookeeper中存储了Hbase中根子表的位置,zookeeper将这些信息转给新的master。4新的master等待各个HRegionserver把自身的信息checkin到新的master。5新的master扫描表信息后,对外提供服务,master切换完成。实验结果:在这四分钟左右的时间内,使用hbaseshell的情况:无法查询和插入数据在此期间hbaseshell报错:ERROR:org.apache.hadoop.hbase.MasterNotRunningException:hadoopDN00:60000[root@hadoopDN01hbase]#bin/hbaseshellHBaseShell;enter'helpRETURN'forlistofsupportedcommands.TypeexitRETURNtoleavetheHBaseShellVersion0.90.3,r1100350,SatMay713:31:12PDT2011hbase(main):001:0listTABLEERROR:org.apache.hadoop.hbase.MasterNotRunningException:hadoopDN00:600003.2插入数据过程中切换测试如下:1,启动Hbase:start-hbase.sh,会同时启动命令执行机器上的Hmaster,此机器作为主master。2,启动备用Hmaster:hbase-daemon.shstartmaster。启动一个备用master,实际工作的是主master。3,打开eclipse开始往Hbase插入五百万条数据,在插入数据的同时kill掉主master上的Hmaster进程,备用master接管主master。切换过程中查询eclipse插入情况和查询情况:插入数据过程中切换master切换过程中查询数据实验结果:在切换过程中eclipse显示数据仍然可以插入数据,插入数据结束后也可以查询。3.3切换测试过程中插入数据如下:1,启动Hbase:start-hbase.sh,会同时启动命令执行机器上的Hmaster,此机器作为主master。2,启动备用Hmaster:hbase-daemon.shstartmaster。启动一个备用master,实际工作的是主master。3,kill掉主master上的Hmaster进程,备用master接管主master,在切换过程中在eclipse开始往Hbase插入数据。切换过程中插入数据,查询eclipse插入情况和查询情况如图:切换过程中插入数据实验结果:在切换过程中eclipse显示数据不可以插入数据,表明在切换过程中不可以新建表。3.4Hbase性能调优:1,为了避免javafullGCsuspendthread对Zookeeperheartbeat的影响,需要对hbase-env.sh进行配置exportHBASE_OPTS=-ea-XX:+UseConcMarkSweepGC-XX:+CMSIncrementalMode-XX:+HeapDumpOnOutOfMemoryError2,HBASE_HEAPSIZE这个参数决定了hbase最多能调用物理机的内存大小,尽量配置大一些exportHBASE_HEAPSIZE=3000在hbase-site.xml加入:propertynamehbase.zookeeper.property.initLimit/namevalue10/value/propertypropertynamehbase.zookeeper.property.syncLimit/namevalue5/value/propertypropertynamezookeeper.session.timeout/namevalue5000/value/propertypropertynamehbase.zookeeper.property.minSessionTimeout/namevalue500/value/propertypropertynamehbase.zookeeper.property.tickTime/namevalue500/value/propertypropertynamehbase.zookeeper.property.maxSessionTimeout/namevalue5000/value/propertypropertynamehbase.rpc.timeout/namevalue5000/value/propertypropertynameipc.socket.timeout/namevalue2000/value/propertypropertynamehbase.regionserver.restart.on.zk.expire/namevaluetrue/value/propertypropertynamehbase.regionserver.handler.count/namevalue25/value/propertypropertynamehbase.client.retries.number/namevalue2/value/propertypropertynamehbase.hregion.memstore.mslab.enabled/namevaluetrue/value/propertypropertynamehbase.regionserver.global.memstore.upperLimit/namevalue0.4/value/propertypropertynamehbase.regionserver.global.memstore.lowerLimit/namevalue0.35/value/propertypropertynamehbase.hregion.memstore.block.multiplier/namevalue2/value/property测试在20:52:50kill掉Hmaster查看Hregionserver上的日志日志提示在20:53:17,检测到主master失效,之后一直提示无法连接master,直到检测到新的master。在20:53:20,master切换成功,regionserver可以连接此master。实验结果:对HBase进行调优后master切换可以缩短至17秒。4、动态扩展测试4.1解决方案动态扩展测试的实验主要设计了以下几种情况。具体方案如下:在192.168.11.24配置好Hbase,分别设置开机自启动HReginserver,重启看是否会正常工作。4.2写操作实验步骤:HRegionserver动态加入方法:1,192.168.11.24(主机名hadoopDN06)未写入配置文件中regionservers中
本文标题:Hbase单点故障测试方案
链接地址:https://www.777doc.com/doc-2875847 .html