HBase meta表介紹

在網上較多的文章都會介紹hbase的兩個關鍵表ROOT表與meta表歹嘹。其實在hbase0.98之后征唬,hbase就廢棄了ROOT表谨履,僅保留meta表(還有namespace表笛求,該表只與hbase命名空間有關,這里不做介紹)扭粱,并且該表不允許split舵鳞。

meta split

在0.98后,meta被禁止進行split操作琢蛤。要知道m(xù)eta表的一條記錄包含了一個region的位置蜓堕、起始key,創(chuàng)建時間等信息虐块。那萬一region數量過大怎么辦俩滥?查看了公司集群一共1091個region嘉蕾,meta表的大小如圖所示:

image

假定集群有十萬個region贺奠,meta表也就400多M。在生產環(huán)境下错忱,hbase.hregion.max.filesize配置為10G儡率,如果按照這個大小來看挂据,meta可支持的region的數據是一個很可觀的數量。

meta位置

meta表location info以非臨時znode的方式注冊到zk上儿普,如下圖崎逃,可知meta region位置為centos063機器。

image

meta rowkey

meta表的rowkey信息在HRegionInfo類的createRegionName方法中構建眉孩,代碼如下:

public static byte [] createRegionName(final TableName tableName,
      final byte [] startKey, final byte [] id, final int replicaId, boolean newFormat) {
    int len = tableName.getName().length + 2 + id.length +
        (startKey == null? 0: startKey.length);
    if (newFormat) {
      len += MD5_HEX_LENGTH + 2;
    }
    byte[] replicaIdBytes = null;
    // Special casing: replicaId is only appended if replicaId is greater than
    // 0. This is because all regions in meta would have to be migrated to the new
    // name otherwise
    if (replicaId > 0) {
      // use string representation for replica id
      replicaIdBytes = Bytes.toBytes(String.format(REPLICA_ID_FORMAT, replicaId));
      len += 1 + replicaIdBytes.length;
    }

    byte [] b = new byte [len];

    int offset = tableName.getName().length;
    System.arraycopy(tableName.getName(), 0, b, 0, offset);
    b[offset++] = HConstants.DELIMITER;
    if (startKey != null && startKey.length > 0) {
      System.arraycopy(startKey, 0, b, offset, startKey.length);
      offset += startKey.length;
    }
    b[offset++] = HConstants.DELIMITER;
    System.arraycopy(id, 0, b, offset, id.length);
    offset += id.length;

    if (replicaIdBytes != null) {
      b[offset++] = REPLICA_ID_DELIMITER;
      System.arraycopy(replicaIdBytes, 0, b, offset, replicaIdBytes.length);
      offset += replicaIdBytes.length;
    }

    if (newFormat) {
      //
      // Encoded name should be built into the region name.
      //
      // Use the region name thus far (namely, <tablename>,<startKey>,<id>_<replicaId>)
      // to compute a MD5 hash to be used as the encoded name, and append
      // it to the byte buffer.
      //
      String md5Hash = MD5Hash.getMD5AsHex(b, 0, offset);
      byte [] md5HashBytes = Bytes.toBytes(md5Hash);

      if (md5HashBytes.length != MD5_HEX_LENGTH) {
        LOG.error("MD5-hash length mismatch: Expected=" + MD5_HEX_LENGTH +
                  "; Got=" + md5HashBytes.length);
      }

      // now append the bytes '.<encodedName>.' to the end
      b[offset++] = ENC_SEPARATOR;
      System.arraycopy(md5HashBytes, 0, b, offset, MD5_HEX_LENGTH);
      offset += MD5_HEX_LENGTH;
      b[offset++] = ENC_SEPARATOR;
    }

    return b;
  }

根據上圖源碼个绍,再通過hbase shell查詢mate表信息如下圖:

image

可知,hash值=MD5Hash.getMD5AsHex(byte(表名,region startKey,創(chuàng)建時間))浪汪,meta表的rowkey組成為:表名,region startKey,創(chuàng)建時間.hash值巴柿。如果當前region為table的第一個region時(第一個region無start key)時,region startKey=null死遭。

mete info

meta表只有一個列簇info广恢,并且包含四列:
1、regioninfo :當前region的startKey與endKey呀潭,name等消息
2钉迷、seqnumDuringOpen:
3、server:region所在服務器及端口
4钠署、serverstartcode:服務開始的時候的timestamp

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末糠聪,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子谐鼎,更是在濱河造成了極大的恐慌枷颊,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件该面,死亡現場離奇詭異夭苗,居然都是意外死亡,警方通過查閱死者的電腦和手機隔缀,發(fā)現死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門题造,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人猾瘸,你說我怎么就攤上這事界赔。” “怎么了牵触?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵淮悼,是天一觀的道長。 經常有香客問我揽思,道長袜腥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任钉汗,我火速辦了婚禮羹令,結果婚禮上鲤屡,老公的妹妹穿的比我還像新娘。我一直安慰自己福侈,他們只是感情好酒来,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肪凛,像睡著了一般堰汉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上伟墙,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天衡奥,我揣著相機與錄音,去河邊找鬼远荠。 笑死矮固,一個胖子當著我的面吹牛,可吹牛的內容都是我干的譬淳。 我是一名探鬼主播档址,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼邻梆!你這毒婦竟也來了守伸?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤浦妄,失蹤者是張志新(化名)和其女友劉穎尼摹,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體剂娄,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡蠢涝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了阅懦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片和二。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖耳胎,靈堂內的尸體忽然破棺而出惯吕,到底是詐尸還是另有隱情,我是刑警寧澤怕午,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布废登,位于F島的核電站,受9級特大地震影響郁惜,放射性物質發(fā)生泄漏堡距。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吏颖。 院中可真熱鬧,春花似錦恨樟、人聲如沸半醉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缩多。三九已至,卻和暖如春养晋,著一層夾襖步出監(jiān)牢的瞬間衬吆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工绳泉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逊抡,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓零酪,卻偏偏與公主長得像冒嫡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子四苇,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容

  • 參考:http://www.reibang.com/p/569106a3008f 最近在逐步跟進Hbase的相關...
    博弈史密斯閱讀 853評論 1 1
  • 最近在逐步跟進Hbase的相關工作孝凌,由于之前對Hbase并不怎么了解,因此系統(tǒng)地學習了下Hbase月腋,為了加深對Hb...
    飛鴻無痕閱讀 50,222評論 19 272
  • 比特科技: 存儲蟀架、數據庫、大數據技術 ? HBase原理和設計 http://www.bitstech.net/...
    葡萄喃喃囈語閱讀 728評論 0 11
  • 本文首先簡單介紹了HBase,然后重點講述了HBase的高并發(fā)和實時處理數據 榆骚、HBase數據模型片拍、HBase物理...
    達微閱讀 2,732評論 1 13
  • 簡介 HBase —— Hadoop Database的簡稱,Google BigTable的另一種開源實現方式妓肢,...
    尼小摩閱讀 530評論 0 3