首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Spark学习技巧

    HBase运维:如何逆向修复HBase元数据表

    /hbase/data/default/[TableName]/[RegionName]/.regioninfo regioninfo文件。 每一个Region的信息在元数据表中都以独立的行存在,这一行数据的格式定义如下: RowKey:[RegionName] Qualifier:info:regioninfo RegionInfo 中的表名完整恢复Regioninfo文件。 逆向填充meta表行 regioninfo文件序列化,填入meta表 info:regioninfo 列,并同时写入默认的server,等它被再次open的时候,重新分配region到实际的regionserver 步骤3:hbase hbck -fixHdfsOrphones 修复regioninfo缺失问题,根据region目录下的hfile重新生成regioninfo文件。

    4.2K10发布于 2021-03-05
  • 来自专栏大数据学习笔记

    HDFS块丢失

    hbase/hbase.version blk_1073741826 /hbase/hbase.id blk_1073741827 /hbase/data/hbase/meta/1588230740/.regioninfo .tableinfo.0000000001 blk_1073741835 /hbase/data/hbase/namespace/68b26ebda68daa41d66237c2da92f90b/.regioninfo /hbase/data/hbase/meta/1588230740/.regioninfo: CORRUPT blockpool BP-433695712-192.168.1.162-1520298438803 block blk_1073741827 /hbase/data/hbase/meta/1588230740/.regioninfo: MISSING 1 blocks of total size /hbase/data/hbase/namespace/68b26ebda68daa41d66237c2da92f90b/.regioninfo: CORRUPT blockpool BP-433695712

    1.1K10编辑于 2022-05-06
  • 来自专栏岑玉海

    hbase源码系列(三)Client如何找到正确的Region Server

    TableName.META_TABLE_NAME,这个就是我们要找的-ROOT-,在0.96里面它已经被取消了,取而代之的是META表中的第一个regionHRegionInfo.FIRST_META_REGIONINFO HRegionInfo regionInfo = MetaScanner.getHRegionInfo(result); if (regionInfo == null) { regionInfo.getTable().equals(tableName)) { return false; // stop scanning } if (regionInfo.isOffline()) { // don't cache offline regions = getHRegionInfo(startRowResult); byte[] rowBefore = regionInfo.getStartKey(); startRow

    2.1K110发布于 2018-03-01
  • 来自专栏岑玉海

    hbase源码系列(八)从Snapshot恢复表

    = null) { //for (HRegionInfo regionInfo: tableRegions) { String regionName = regionInfo.getEncodedName ); } else { metaChanges.addRegionToRemove(regionInfo); } } // private void restoreRegion(HRegionInfo regionInfo) throws IOException { Path snapshotRegionDir = new Path(snapshotDir, regionInfo.getEncodedName()); //获得要恢复<family,storeFiles>列表 Map<String, private void restoreStoreFile(final Path familyDir, final HRegionInfo regionInfo, final String

    1.5K60发布于 2018-03-01
  • 来自专栏岑玉海

    hbase源码系列(七)Snapshot的过程

    = region.getFirst(); if (regionInfo.isOffline() && (regionInfo.isSplit() || regionInfo.isSplitParent fs.exists(new Path(snapshotDir, regionInfo.getEncodedName()))) { LOG.info("Take disabled snapshot of offline region=" + regionInfo); snapshotDisabledRegion(regionInfo); if (regionInfo.isOffline() && (regionInfo.isSplit() || regionInfo.isSplitParent())) { if (! of offline region=" + regionInfo); snapshotDisabledRegion(regionInfo); } } protected

    1.9K70发布于 2018-03-01
  • 来自专栏Albert陈凯

    Hadoop数据分析平台实战——260用户数据ETL离线数据分析平台实战——260用户数据ETL

    } } package com.bjsxt.ae.util.model; /** * 地区的pojo * @author root * */ public class RegionInfo DEFAULT_INFO = new RegionInfo(); public static void main(String[] args) { * @param ip * 要解析的ip地址,格式为: 120.197.87.216 * @return */ public RegionInfo if (ip == null || ip.trim().isEmpty()) { return DEFAULT_INFO; } RegionInfo info = new RegionInfo(); try { String country = super.getCountry(ip);

    1.2K60发布于 2018-04-08
  • 来自专栏Dotnet9

    【翻译】WPF中的数据绑定表达式

    country = new RegionInfo(culture.LCID); if (! 创建返回类型为RegionInfo的方法。 public static List <RegionInfo> GetCountries() { List <RegionInfo> countries = new List <RegionInfo country = new RegionInfo(culture.LCID); if (countries.Where(p => p.Name == country.Name).Count private List <RegionInfo> countries = null; public List <RegionInfo> CountriesList { get

    3.6K30发布于 2021-12-01
  • 来自专栏独立观察员博客

    【翻译】WPF中的数据绑定表达式

    country = new RegionInfo(culture.LCID); if (! 创建返回类型为RegionInfo的方法。 public static List <RegionInfo> GetCountries() { List <RegionInfo> countries = new List <RegionInfo country = new RegionInfo(culture.LCID); if (countries.Where(p => p.Name == country.Name).Count private List <RegionInfo> countries = null; public List <RegionInfo> CountriesList { get

    3.1K10编辑于 2022-12-06
  • 来自专栏前端进阶学习交流

    hbase Normalizer解决预分区错误,在不动数据的情况下完美解决热点问题

    table_p8ddpd6q5z,,1469494305548.68b9892220865cb6048 column=info:regioninfo, timestamp=1469494306375, STARTKEY => '', ENDKEY => '1'} .... table_p8ddpd6q5z,1,1469494317178.867b77333bdc75a028 column=info:regioninfo STARTKEY => '1', ENDKEY => '3'} .... table_p8ddpd6q5z,3,1469494328323.98f019a753425e7977 column=info:regioninfo STARTKEY => '3', ENDKEY => '7'} .... table_p8ddpd6q5z,7,1469494339662.94c64e748979ecbb16 column=info:regioninfo STARTKEY => '7', ENDKEY => '8'} .... table_p8ddpd6q5z,8,1469494339662.6d2b3f5fd1595ab8e7 column=info:regioninfo

    74120发布于 2020-11-26
  • 来自专栏about云

    hbase Normalizer解决预分区错误,在不动数据的情况下完美解决热点问题

    table_p8ddpd6q5z,,1469494305548.68b9892220865cb6048 column=info:regioninfo, timestamp=1469494306375, STARTKEY => '', ENDKEY => '1'} .... table_p8ddpd6q5z,1,1469494317178.867b77333bdc75a028 column=info:regioninfo STARTKEY => '1', ENDKEY => '3'} .... table_p8ddpd6q5z,3,1469494328323.98f019a753425e7977 column=info:regioninfo STARTKEY => '3', ENDKEY => '7'} .... table_p8ddpd6q5z,7,1469494339662.94c64e748979ecbb16 column=info:regioninfo STARTKEY => '7', ENDKEY => '8'} .... table_p8ddpd6q5z,8,1469494339662.6d2b3f5fd1595ab8e7 column=info:regioninfo

    1.7K10发布于 2018-07-26
  • 来自专栏我的小碗汤

    使用pprof优化golang性能

    s.regionInfo = make([]int, s.dim * s.dim / 9) func (s *Sudoku) updateRegion(row, col, val, delta int) { region := (row/3)*3 + col/3 key := region*9 + val - 1 s.regionInfo[key] += delta } func (s checkRegion(row, col, val int) bool { region := (row/3)*3 + col/3 key := region*9 + val - 1 return s.regionInfo [key] == 1 } 我们使用一个额外的 regionInfoslice 来存储九宫格里的情况,每一次设置数独中格子的值时,我们更新一下regionInfo的信息。 当要检查某个数在某个九宫格中是否已经存在时,直接查询regionInfo即可。

    1K40发布于 2018-08-22
  • 来自专栏岑玉海

    hbase源码系列(六)HMaster启动过程

    Set<HRegionInfo> regions = new HashSet<HRegionInfo>(); regions.add(HRegionInfo.FIRST_META_REGIONINFO (a)prepareLogReplay方法当中,把HRegionInfo.FIRST_META_REGIONINFO这个region添加到了recovering-regions下面,置为恢复中的状态。 里面状态状态,表名该region正在变化当中 assignmentManager.getRegionStates().createRegionState(HRegionInfo.FIRST_META_REGIONINFO rit = this.assignmentManager.processRegionInTransitionAndBlockUntilAssigned(HRegionInfo.FIRST_META_REGIONINFO else { //指派了,就更新一下它的状态为online this.assignmentManager.regionOnline(HRegionInfo.FIRST_META_REGIONINFO

    2.6K90发布于 2018-03-01
  • 来自专栏Spark学习技巧

    Hbase源码系列之源码前奏hbase:meta表相关详细介绍

    .,,1 Values: info:regioninfo: 序列化的hbase:meta表的HRegionInfo实例。 表的起始时间 2,hbase:meta(.meta.)表结构 Key: Region key的格式是:[table],[region start key],[region id] Values: info:regioninfo

    3.4K100发布于 2018-01-30
  • HBase集群管理与运维实战:深度解析扩缩容、Region迁移与滚动重启策略

    regionInfo, ServerName destServer) → AssignmentManager.move(RegionInfo regionInfo, ServerName destServer ) → RegionStateStore.updateRegionState(regionInfo, RegionState.State.PENDING_CLOSE) // 记录状态 → ServerManager.sendCloseRegion(origServer, regionInfo, destServer) // 通知原节点关闭 // RegionServer 关闭逻辑 :卸载Region org.apache.hadoop.hbase.regionserver.HRegionServer.closeRegion(RegionInfo regionInfo) → region.close org.apache.hadoop.hbase.regionserver.HRegionServer.openRegion(RegionInfo regionInfo) → region.open

    67910编辑于 2025-08-27
  • 来自专栏锦鲤安全

    规避检测(共五章):第三章

    lpMinimumApplicationAddress, LPVOID lpMaximumApplicationAddress) { BOOL IsSB = FALSE; MEMORY_BASIC_INFORMATION RegionInfo NtQueryVirtualMemory(GetCurrentProcess(), (PVOID)i, MemoryBasicInformation, &RegionInfo & PAGE_EXECUTE_READWRITE) == PAGE_EXECUTE_READWRITE) && ((RegionInfo.State & MEM_COMMIT ) == MEM_COMMIT)) { for (k = i; k < i + RegionInfo.RegionSize; k += sizeof(DWORD)) { break; } } } i += RegionInfo.RegionSize

    58130编辑于 2023-11-20
  • 来自专栏大数据平台TBDS

    hbase因为数据空洞故障导致读写缓慢

    regionserver的情况,发现存储数据空洞现象: “ERROR: There is a hole in the region chain between …… You need to create a new .regioninfo You need to create a new .regioninfo and region dir in hdfs to plug the hole.

    7.7K90发布于 2018-10-29
  • 来自专栏活动

    如何高效管理HBase中的Region Server

    org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.RegionInfo true, true); System.out.println("负载均衡已启用"); // 获取表的Region列表 List<RegionInfo > regions = admin.getRegions(Bytes.toBytes("my_table")); for (RegionInfo region : regions regions.isEmpty()) { RegionInfo regionToMove = regions.get(0); admin.move

    87810编辑于 2024-09-06
  • 来自专栏用户6296428的专栏

    HBase Bulkload 实践探讨

    public class RegionPartitioner extends Partitioner { private List<HBaseTableInfo.RegionInfo> regionInfos = new LinkedList<>(); public RegionPartitioner(List<HBaseTableInfo.RegionInfo> regionInfos){ this.regionInfos } return 0; } public static RegionPartitioner getRegionPartitioner(List<HBaseTableInfo.RegionInfo List<HBaseTableInfo.RegionInfo> regionInfos = admin.getTableRegions(TableName.valueOf(hbaseTable)).stream () .map(HRegionInfo ->{ return new HBaseTableInfo.RegionInfo(hbaseTable,HRegionInfo.getStartKey

    2K30发布于 2020-08-24
  • 来自专栏码字搬砖

    Hbase原理详解

    表中最主要的Family:info,info里面包含三个Column:regioninfo, server, serverstartcode。 其中regioninfo就是Region的详细信息,包括StartKey, EndKey 以及每个Family的信息等等。

    1.4K41发布于 2018-10-24
  • 来自专栏大数据和云计算技术

    深度剖析HBase负载均衡和性能指标

    ().getBoolean("hbase.master.loadbalance.bytable", false); Map<TableName, Map<ServerName, List<RegionInfo getClusterMetricsWithoutCoprocessor()); this.balancer.setClusterLoad(assignmentsByTable); for (Map<ServerName, List<RegionInfo this.serverManager.getDrainingServersList()); } for (Entry<TableName, Map<ServerName, List<RegionInfo

    3K20发布于 2018-10-24
领券