hbase块丢失,hbase region丢失

HBase宕机恢复-SplitWAL1、在0版本 HBase 实现了新的分布式事务框架 Procedure V2(HBASE-12439),使用 HLog 存储这种单机事务(DDL、Split、Move 等操作)的中间状态 。
2、发现有张HBase表丢失了一半数据,然后在HBase Master UI上发现Region的数量少了一半,但是随后进入HDFS目录中查看 , 其实Region数据是存在的,那么原因就确定了,是META表中数据丢失,想要恢复数据,需要对META表进行数据修复 。
3、HBase 运行在 HDFS 上,HDFS 的多副本存储可以让它在岀现故障时自动恢复,同时 HBase 内部也提供 WAL 和 Replication 机制 。
4、Master负载并不很高,基本采用热备的方式来实现Master高可用 RegionServer宕机的恢复主要原因有 。
5、测试环境正常,生产环境下,时不时出现HRegionServer挂掉的情况,而HMaster正常 。重启Hbase之后,短时间内恢复正常,然而一段时间之后,再次出现RegionServer挂掉的情况 。因此,我们决定对此故障进行深入排查,找出故障原因 。
mongodb数据库批量插入海量数据时为什么有少部分数据丢失所以感觉如果只是用于海量实时的小数据那么MongoDB可能会好点,但是如果还需要对数据进行统计分析 , 那么最好还是考虑统计分析的因素 。如你使用mapreduce进行数据统计分析,那么hbase可能会更好些 , 虽然MongoDB也支持mr 。
在MongoDB很早的版本 , 0之前,没有journal,加上默认不是安全写,系统一宕机就可能出现数据丢失,因为数据没有刷盘,也没有恢复日志恢复机制 。这个问题倒默认启用journal以及安全写之后,没有问题了 。
MongoDB高可用的基础是复制集群,复制集群本质来说就是一份数据存多份,保证一台机器挂掉了数据不会丢失 。一个副本集至少有3个节点组成:从上面的节点类型可以看出,一个三节点的复制集群可能是PSS或者PSA结构 。
MongoDB在这一方面是不如SQL类型的数据库,且MongoDB没有固定的Schema , 正因为MongoDB少了一些这样的约束条件 , 可以让数据的存储数据结构更灵活,存储速度更加快 。
hbase里的hlog存在哪?regionserver里还是zookeeper里?1、由上图可以知道,客户端是通过Zookeeper找到HMaster,然后再与具体的Hregionserver进行沟通读写数据的 。具体到物理实现,细节包括以下这些:首先要清楚HBase在hdfs中的存储路径 , 以及各个目录的作用 。
2、首先Hbase是依赖于HDFS和zookeeper的 。Zookeeper分担了Hmaster的一部分功能,客户端进行DML语句的时候,都是先跟ZK交互 。
3、hbase.cluster.distributed 集群的模式 , 分布式还是单机模式,如果设置成false的话,HBase进程和Zookeeper进程在同一个JVM进程 。
安装hadoop丢失日志jar包该怎么解决htrace-core-0.jar 根据以上提示,到自己的Hadoop及hbase中查询相关的包添加进工程即可 。
解决办法 :这个很有可能是客户端Hadoop版本和服务端版本不一致导致的,或者导入的jar包缺失,要确保导入的依赖包完整 。
换了台机器 , 问题解决,hadoop-0.2-test.jar TestDFSIO 和 hadoop-0.2-examples.jar sort测试通过,期间又遇到了2个问题 。
看看里面有没有相关联的类,Hadoop相关的类肯定在HADOOP_HOME下面的lib中 , 是这个路径没找到 。我当时就只能将HADOOP_HOME下面的lib中的jar包都拷贝到JAVA_HOME下面去 。hadoop最后能起来的 。但是方法比较挫 。。
下载Eclipse解压 。把hadoop-eclipse-plugin-jar放到eclipse的plugs目录下 。
hadoop运行jar包显示threadmain的原因是在打包的过程中没有相关的类,其解决方法如下:右击项目名BuildPath,选择ConfigureBuildPath 。选择OrderandExport,勾选JRESystemLibrary 。重新打jar包运行即可 。

推荐阅读