
HBase
文章平均质量分 77
数据源的港湾
这个作者很懒,什么都没留下…
展开
-
记一次HBase启动异常的恢复历程
我去hdfs这个表对应的目录下面查看发现.regioninfo文件是存在的,但meta表中确实没有相关信息,既然是这样情况,那理论上通过-fixMeta应该就可以修复Meta数据,但是实际上执行-fixMeta后并没有实际的效果。至些,这个HBase启动的问题算是彻底修复了,虽然,但是,关于最后的.regioninfo为什么会有问题以及是什么问题,为什么不删除.regioninfo后再-repair就可以修复,这里面的一些细节问题我还没有研究清楚。不管怎样,先记录下来这次的恢复历程吧,后面有时间再来细究。原创 2022-09-08 11:25:36 · 2544 阅读 · 2 评论 -
HBase 在线删除oldWAL释放磁盘空间
HBase的WAL日志会从WAL转移到oldWAL目录,oldWAL可以通过参数来设置保留时效,如以下截图是将oldWAL设置为7天,通过配置hbase.master.logcleaner.ttl指定,这可能会导致磁盘空间占用较大。如果在线上环境碰到磁盘空间占用很大的情况时,可以考虑根据日期条件来删除部分oldWAL日志。(如果是直接删除oldWAL目录下面的所有文件,可能会因为当前正在有WAL移动的动作而导致RegioniServer宕机)......原创 2022-08-03 16:51:38 · 3030 阅读 · 0 评论 -
HBase之异步Replication机制
HBase 提供了一种群集复制机制,允许使用源群集的预写日志(WAL)来传播更改,从而使一个群集的状态与另一个群集的状态保持同步。集群复制的一些用例包括:HBase中的Replication是基于WAL的,其在主集群的每一个RegionServer进程内部起了一个叫作ReplicationSource的线程来负责Replication,同时在备集群的每一个RegionServer内部起了一个ReplicationSink的线程来负责接收Replication数据。ReplicationSource记录须要同原创 2022-06-27 14:16:41 · 2266 阅读 · 0 评论 -
HBase日志中报Slow ReadProcessor read fields
某环境中查看HBase日志中报Slow ReadProcessor read fields,查看相关解释说这个问题主要是由于hdfs引起的,因为hbase作为客户端向hdfs写入数据进行持久化,和hbase本身没有太大关系。至于是因为哪一部分的问题,可以用如下命令对datanode上的日志来分析一下:egrep -o "Slow.*?(took|cost)" /path/to/current/datanode/log | sort | uniq -c典型的输出为, 23 hadoop-cmf原创 2021-11-17 16:15:49 · 1573 阅读 · 0 评论 -
HBase最佳实践-内存规划
本文主要出自:http://hbasefly.com/2016/06/18/hbase-practise-ram/HBase的内存规划分为读缓存BlockCache及写缓存MemStore。其中读缓存又分为两种模式:LRUBlockCache及BucketCache。针对两种不同的应用场景(读多写少、写多读少),我们需要使用不同的工作模式。写多读少的场景下,我们推荐使用LRUBlockCache,读多写少的场景下,我们推荐使用BucketCache。场景一:写多读少型 + LRUBlockCache原创 2021-03-02 17:37:10 · 395 阅读 · 1 评论 -
HBase Balancer失败日志报错 ERROR org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler
现象HBase shell下面打开Balance并手动执行Balancer很快结束,显示为false(此时balance_switch为true)hbase(main):007:0* balancerfalse 查看RegionServer日志有如下报错信息,2020-07-08 16:49:01,821 INFO org.apache.hadoop.hbase.coordination.ZkOpenRegionCoordination: Opening of region {ENCODED原创 2020-07-09 09:19:59 · 1148 阅读 · 1 评论 -
Trafodion Troubleshooting-failed because A clone should not have regions to restore
现象在HBase中做RESTORE_SNAPSHOT时报错,hbase(main):022:0* restore_snapshot 'RLZYGLXT_FILE_snapshot'ERROR: org.apache.hadoop.hbase.snapshot.RestoreSnapshotException: clone snapshot={ ss=RLZYGLXT_FILE_snapsh...原创 2019-12-12 12:24:11 · 755 阅读 · 0 评论 -
EsgynDB Troubleshooting-Problem binding to /0.0.0.0:60020 : Address already in use.
现象EsgynDB所在的集群,HBase有4台RegionServer,因某种原因有一个RegionServer下线。从CDH Manager中手动启动此RegionServer无法启动,报错信息如下,2019-08-03 10:40:48,501 ERROR org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine: Reg...原创 2019-08-03 15:40:59 · 969 阅读 · 0 评论 -
Trafodion Troubleshooting-HBase Master Too many open files
2## 现象准备地说这是一个由于HBase问题导致Trafodion不可用的问题。重启Hadoop后,HBase Master过了一会儿自动Down掉,RegionServer显示正常。HBase Master日志有较多报错"java.net.SocketException: Too many open files"分析判断是打开文件数过多导致,可能与ulimit设置有关。解决(1)...原创 2019-04-11 18:46:04 · 576 阅读 · 0 评论 -
HBase 缓存机制
HBase提供了2种类型的缓存结构:MemStore & BlockCache。其中MemStore是写缓存,BlockCache是读缓存。MemStore:HBase写数据首先写入MemStore之中,并同时写入HLog,待满足一定条件后将MemStore中数据刷到磁盘,可以很大提升HBase的写性能。而且对读也很有提升,如果没有MemStore,读取刚写入的数据需要从文件中通过I/...转载 2018-12-26 13:47:25 · 1844 阅读 · 1 评论 -
HBase之权限控制
HBase支持做权限访问控制,HBase的权限访问包括以下5种权限,Read(R) 允许对某个scope有读取权限Write(W) 允许对某个scope有写入权限Execute(X) 允许对某个scope有执行权限Create(C) 允许对某个scope有建表、删表权限Admin(A) 允许对某个scope做管理操作,如balance、split、snapshot等这...原创 2018-06-13 14:11:57 · 8896 阅读 · 0 评论 -
Apache HBase region拆分
本篇文章主要分享Apache HBase如何通过regions实现负载均衡以及如何管理region拆分。HBase以表的形式存储多行数据。表被划分为”regions“。Regions分布在集群的不同节点上,通过RegionServer进程被客户端调用。一个region由一组连接的Key组成,从一个start key开始,以end key结尾。Region之间不会overlap,这意味着一个固定的ro翻译 2017-06-26 18:25:16 · 2959 阅读 · 0 评论 -
HBase Snapshot
概念snapshot是元数据信息集合,允许返回到表之前的某个状态。snapshot并不是表的拷贝,它仅仅是一个文件名称的列表 ,并不会复制实际的数据。完整的snapshot恢复意味着回到之前的某个时刻的”表模式”,而在那之后的所有修改将会丢失。针对snapshot的操作包括: 1 创建snapshot: 在某个固定的表上创建snapshot,如果表的regions正在移动,如在做负载均衡、拆分或合原创 2017-07-11 11:36:04 · 1055 阅读 · 0 评论 -
HBase region预拆分
在说明怎样做HBase region预拆分之前,要先介绍一个概念:region热点。什么是region热点?对于拥有很多region的大表来说,大部分region分布并不是均匀的, 有些regionserver具有较少的region,有些则具有较多的region。那么即使是使用随机的方式往表写数据,region多的那台服务器的负载也会大于其他的regionserver,这就是region热点。 解原创 2016-12-09 16:37:52 · 1863 阅读 · 0 评论 -
HBase WAL预写日志
HBase的region服务器会将数据保存到内存中,直接有足够多的数据才会将其刷写到硬盘中,这样可以避免创建很多的小文件。存储在内存中的数据具有不稳定性,如果服务器断电那么内存中的数据就会可能丢失。 HBase中使用预写日志(WAL)的方式来解决这一问题:每次更新都会写入日志,只有写入成功才会通知客户端操作成功,然后服务器可以按需自由地批量处理或聚合内存中的数据。 下面图展示WSL是怎样和HB原创 2016-12-12 09:48:08 · 1851 阅读 · 0 评论 -
HBase 行锁概念
在HBase中有一个概念叫“行锁”。我们知道,HBase有一些客户端API,如put()、delete()、checkAndPut()等操作都是独立执行的,这意味着在一个串行方式执行中,对于每一行必须保证行级别的操作是原子性的。 “行锁”的特性保证了只有一个客户端能获取一行数据相应的锁,同时对该行进行修改,其它客户端则需要等到锁释放后才能修改同一行。 “行锁”机制一般是隐式的,当然客户端也可以显原创 2016-12-12 13:58:41 · 1113 阅读 · 0 评论 -
HBase Shell 基本命令
本文介绍一些常用的HBase Shell下的基本命令,如查看表、创建表、删除表等等。 假设你已经安装了Hadoop集群并且安装了HBase组件,通过以下方法直接进入HBase Shell,[centos@cent-2 ~]$ hbase shell2016-11-17 13:11:48,126 INFO [main] Configuration.deprecation: hadoop.nati原创 2016-11-17 13:37:49 · 4306 阅读 · 0 评论 -
HBase写数据
当用户向RegionServer发起HTable.put()请求时,其会将请求交给对应的HRegion实例来处理。 对应的HRegion首先决定数据是否需要写到由HLog类实现的预定日志(WAL)中。WAL是标准的Hadoop SequenceFile,并且存储了HLogKey实例。这些键包括序列号和实际数据,所以在服务器崩溃时可以回滚未持久化的数据。 一旦数据被写入WAL中,数据就被放到Mem原创 2016-12-13 11:34:52 · 616 阅读 · 0 评论 -
HBase Shell命令学习
HBase Shell是基于JRuby的,确切地说,它是使用交互式的Ruby Shell,输入命令并快速得到响应。 通过命令”hbase shell”进行交互式终端,通过exit或quit退出。[root@cent-1 ~]# hbase shellJava HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprec原创 2016-12-13 17:28:40 · 763 阅读 · 0 评论 -
HBase 数据模型
在HBase中,数据存储在表中,表有行和列,这看起来跟关系型数据库类似,但其实又不同。下面具体介绍一下HBase中的结构,表(TABLE) 一个HBase表包含多行。行(Row) 行由行键(row key)及一或多个相关的列组成。行是按照行键存储的,因此合理的设计行键十分重要。由此可以看出,HBase表类似于一个索引的结构。列(Column) 一个列由列族和列标识符组成,列族和列标识符以:分隔原创 2017-01-22 11:14:53 · 863 阅读 · 0 评论 -
HBase Minor&Major Compaction 解析
众所周知,Apache HBase是一个分布式的基于于读性能优化的列式存储,读性能的优化来自于每个列簇对应一个文件。HBase最初思想来源于Google文件系统。一个列簇对应一个文件的情况并不保证这样,尤其是在HBase频繁写的时候,因此HBase需要一种机制把HFiles合并以减少最大磁盘寻址开销以提高读性能。这个过程称为compaction。Compaction有两方式:major compac翻译 2017-06-05 12:55:04 · 4328 阅读 · 0 评论 -
HBase hbck 命令
HBase提供一个hbck工具,其功能由HBaseFsck类来实现,主要用来做一致性检查和完整性检查。可以通过以下命令来查看hbck的参数,[root@openstack-2 ~]# hbase hbck -hJava HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely原创 2017-06-05 15:40:26 · 3127 阅读 · 0 评论 -
HBase 负载均衡
HBase有一个特性叫均衡器,默认情况下,均衡器每5分钟执行,通过hbase.balancer.peroid设置。当均衡器启动时,它将尝试均匀分配region到所有regionserver中。 启动均衡器后,均衡器首先会确定一个region分配计划用于描述region如何移动,然后通过迭代调用unassign()方法开始移动region。 用户可以通过均衡器开关来控制均衡器,使用HBase Sh原创 2016-12-09 17:07:24 · 4523 阅读 · 0 评论