hadoop-logo
ようこそ Tech blogへ!
「これからHadoopを勉強しよう」という方はまず下記のページから

サイトの移行に伴って画像が表示されないなどの不具合が生じています

HBase 0.98でのファイル配置(HDFS)

3日目です。
HBaseのバイブルとなっている、オライリーから出版されている書籍、HBase。(通称馬本)。個人的には象本よりも愛用している(せざるを得ない)素晴らしい本ですが、出版されてから2年が過ぎ、現在のバージョンとは違っているところも増えてきました。

馬本2版発売決定?

幸いな事に、現在第2版が執筆中のようで、O’Reillyのサイトによると来年5月ぐらいに発売される予定とのこと。(ちなみに、Hadoop 4版(象本)も来年の春とのことで、こちらは既に先行発売されています。Apache Sparkのチャプターも追加されていました)。日本語版が楽しみですね。
しかし悠然と待ってはいられないので、HBase 0.98.1 を用いてHBaseのルートディレクトリ以下の情報をまとめてみました。(馬本のP.343付近に記載されているものと同じです)。出版されるまでの短い期間は役立つかもしれません。

HBaseのファイル

HBaseのルートディレクトリはHDFSに置かれます。デフォルトは/hbaseです。
まず、HBaseのテーブルをいくつか作成しました。最新のHBaseではネームスペースを利用する事ができるので、ns1というネームスペースを作成しています。ns1:t1というのが、ネームスペースns1にあるt1テーブルです。

hbase shellでのテーブル一覧、ネームスペース一覧

[shell gutter=”false”]
hbase(main):001:0> list
TABLE
analytics_demo
document_demo
ns1:t1
t
t1
tablesplit
6 row(s) in 2.1070 seconds
=> ["analytics_demo", "document_demo", "ns1:t1", "t", "t1", "tablesplit"]
hbase(main):003:0> list_namespace
NAMESPACE
default
hbase
ns1
3 row(s) in 0.0230 seconds
[/shell]
さて、HBaseのルートディレクトリはどうなっているのでしょうか?
手元の環境では以下のようなディレクトリ/ファイル群がありました。(完全なリストは一番下をご覧下さい。右側が欠けていますが、スクロールすれば見ることができます)。
※意図的にリージョンサーバに障害を起こしてから取得したので、いろいろなファイルがあります。
それぞれのディレクトリ/ファイルの用途は以下のようになります。(一部のデータは変更しています)

.migration

スナップショット用のディレクトリ
[shell gutter=”false”]
.migration
[/shell]

.tmp

一時ディレクトリ
[shell gutter=”false”]
.tmp
[/shell]

WAL(先行書き込みログ)

昔は .logs というディレクトリ名だった。リージョンサーバーごとにディレクトリが作成される。詳細は馬本を参照。
[shell gutter=”false”]
WALs
 |- station10,60020,1417567140360
  |- station10%2C60020%2C1417567140360.1417567143892
  |- station10%2C60020%2C1417567140360.1417567149512.meta
[/shell]

archive(アーカイブ)

0.96以降で追加。hbase.master.hfile.cleaner.ttlにより、不要になったHFileがこのフォルダに移動され、後に削除される。この例では以下のようなディレクトリ階層になる、

  • ネームスペース(hbase)
  • テーブル名(meta)
  • リージョン(1588230740)
  • 列ファミリー(info)
  • ストアファイル(各ファイル)

[shell gutter=”false”]
arvhive
 |- data
  |- hbase
   |- meta
    | – 1588230740
     |- info
      |- 55c7ab504ff74df2b5a56cb946911ecc
      |- 5bbea9ff90104f049d9970deef711232
      |- f5e5aa013bdc43fa8ffd1afe8783dba2
[/shell]

corruput(破損)

corruptしたデータが格納される。旧.corruput(だと思うが裏は取ってない)
[shell gutter=”false”]
corrupt
[/shell]

data(テーブルのデータ)

過去のHBaseでは、/hbase/<テーブル名>というようなディレクトリ構造だったが、現バージョンでは /hbase/data/<ネームスペース>/となっている

  • data (テーブルのデータを示す?)
  • default(デフォルトのネームスペース。別のネームスペースを作成すると、この階層に別のディレクトリが作成される。下記の例ではns1というディレクトリが作成されている)
  • t1(テーブル名)
  • .tabledesc/.tableinfo.0000000001 (テーブルのメタ情報)
  • .tmp(一時ディレクトリ)
  • 0ff8955495aed07bc94d63e6f42290ee(リージョン名)
  • .regioninfo (リージョンのメタ情報)
  • cf1(およびcf2) (列ファミリー名)
  • dc0b17d887474827b816aa5a26bf178b (ストアファイル)

なお、/hbase/data/hbase/metaディレクトリ以下にはカタログテーブルの情報が保存されている
[shell gutter=”false”]
data
 | – default
  |- t1
   |-.tabledesc
   | |-.tableinfo.0000000001
   |-.tmp
   |-0ff8955495aed07bc94d63e6f42290ee
    |-.regioninfo
    |-cf1
     |-dc0b17d887474827b816aa5a26bf178b
    |-cf2
     |-c68cfca23d014036a9d7ea852e8f188c
    |-recovered.edits
[/shell]

hbase.id(HBaseのメタ情報)

[shell gutter=”false”]
hbase.id
[/shell]

hbase.version(HBaseのメタ情報)

[shell gutter=”false”]
hbase.id
[/shell]

oldWALs(古いWAL)

以前の.oldlogsと同じ。hbase.master.logcleaner.ttlで移動される。
[shell gutter=”false”]
oldWALs
 |-station10%2C60020%2C1417564300716.1417564303988
 | station10%2C60020%2C1417564300716.1417564305564.meta
[/shell]

完全なデータ

完全なデータは以下の通り
[shell gutter=”false”]
/hbase/.tmp
/hbase/.tmp/data
/hbase/.tmp/data/default
/hbase/.tmp/data/ns1
/hbase/WALs
/hbase/WALs/station10,60020,1417567140360
/hbase/WALs/station10,60020,1417567140360/station10%2C60020%2C1417567140360.1417567143892
/hbase/WALs/station10,60020,1417567140360/station10%2C60020%2C1417567140360.1417567149512.meta
/hbase/archive
/hbase/archive/data
/hbase/archive/data/hbase
/hbase/archive/data/hbase/meta
/hbase/archive/data/hbase/meta/1588230740
/hbase/archive/data/hbase/meta/1588230740/info
/hbase/archive/data/hbase/meta/1588230740/info/55c7ab504ff74df2b5a56cb946911ecc
/hbase/archive/data/hbase/meta/1588230740/info/5bbea9ff90104f049d9970deef711232
/hbase/archive/data/hbase/meta/1588230740/info/f5e5aa013bdc43fa8ffd1afe8783dba2
/hbase/corrupt
/hbase/data
/hbase/data/default
/hbase/data/default/analytics_demo
/hbase/data/default/analytics_demo/.tabledesc
/hbase/data/default/analytics_demo/.tabledesc/.tableinfo.0000000001
/hbase/data/default/analytics_demo/.tmp
/hbase/data/default/analytics_demo/140c64537f01f97699b04b818154a710
/hbase/data/default/analytics_demo/140c64537f01f97699b04b818154a710/.regioninfo
/hbase/data/default/analytics_demo/140c64537f01f97699b04b818154a710/day
/hbase/data/default/analytics_demo/140c64537f01f97699b04b818154a710/day/8c636c0004114cd5960642a0d3f4d890
/hbase/data/default/analytics_demo/140c64537f01f97699b04b818154a710/hour
/hbase/data/default/analytics_demo/140c64537f01f97699b04b818154a710/hour/0731e66eff03426789c469c0c162d06f
/hbase/data/default/analytics_demo/140c64537f01f97699b04b818154a710/recovered.edits
/hbase/data/default/analytics_demo/140c64537f01f97699b04b818154a710/total
/hbase/data/default/analytics_demo/140c64537f01f97699b04b818154a710/total/36b219931b6744e7bf8fadfb789fff92
/hbase/data/default/document_demo
/hbase/data/default/document_demo/.tabledesc
/hbase/data/default/document_demo/.tabledesc/.tableinfo.0000000001
/hbase/data/default/document_demo/.tmp
/hbase/data/default/document_demo/1ef67c33ce14c335b92a59fc15f55f95
/hbase/data/default/document_demo/1ef67c33ce14c335b92a59fc15f55f95/.regioninfo
/hbase/data/default/document_demo/1ef67c33ce14c335b92a59fc15f55f95/doc
/hbase/data/default/document_demo/1ef67c33ce14c335b92a59fc15f55f95/doc/9d78ffc4355445488dcbbf5cba6be12f
/hbase/data/default/document_demo/1ef67c33ce14c335b92a59fc15f55f95/recovered.edits
/hbase/data/default/t
/hbase/data/default/t/.tabledesc
/hbase/data/default/t/.tabledesc/.tableinfo.0000000001
/hbase/data/default/t/.tmp
/hbase/data/default/t/bce94b291bc111a95d7a87ce3e232400
/hbase/data/default/t/bce94b291bc111a95d7a87ce3e232400/.regioninfo
/hbase/data/default/t/bce94b291bc111a95d7a87ce3e232400/cf1
/hbase/data/default/t/bce94b291bc111a95d7a87ce3e232400/cf1/5646c231645848e1a9e6ff5fabf072e5
/hbase/data/default/t/bce94b291bc111a95d7a87ce3e232400/recovered.edits
/hbase/data/default/t1
/hbase/data/default/t1/.tabledesc
/hbase/data/default/t1/.tabledesc/.tableinfo.0000000001
/hbase/data/default/t1/.tmp
/hbase/data/default/t1/0ff8955495aed07bc94d63e6f42290ee
/hbase/data/default/t1/0ff8955495aed07bc94d63e6f42290ee/.regioninfo
/hbase/data/default/t1/0ff8955495aed07bc94d63e6f42290ee/cf1
/hbase/data/default/t1/0ff8955495aed07bc94d63e6f42290ee/cf1/dc0b17d887474827b816aa5a26bf178b
/hbase/data/default/t1/0ff8955495aed07bc94d63e6f42290ee/recovered.edits
/hbase/data/default/tablesplit
/hbase/data/default/tablesplit/.tabledesc
/hbase/data/default/tablesplit/.tabledesc/.tableinfo.0000000001
/hbase/data/default/tablesplit/.tmp
/hbase/data/default/tablesplit/879190c713488bcb2bd18434e9ed7afa
/hbase/data/default/tablesplit/879190c713488bcb2bd18434e9ed7afa/.regioninfo
/hbase/data/default/tablesplit/879190c713488bcb2bd18434e9ed7afa/cf1
/hbase/data/default/tablesplit/879190c713488bcb2bd18434e9ed7afa/cf1/c4534e456eb2484aa19f39d8a5b5d732
/hbase/data/default/tablesplit/879190c713488bcb2bd18434e9ed7afa/cf2
/hbase/data/default/tablesplit/879190c713488bcb2bd18434e9ed7afa/cf2/c68cfca23d014036a9d7ea852e8f188c
/hbase/data/default/tablesplit/879190c713488bcb2bd18434e9ed7afa/recovered.edits
/hbase/data/default/tablesplit/8ea929fa209a6fa7c783300251e49a2c
/hbase/data/default/tablesplit/8ea929fa209a6fa7c783300251e49a2c/.regioninfo
/hbase/data/default/tablesplit/8ea929fa209a6fa7c783300251e49a2c/cf1
/hbase/data/default/tablesplit/8ea929fa209a6fa7c783300251e49a2c/cf2
/hbase/data/default/tablesplit/bde98f2342881203f12e6e4b78c032cb
/hbase/data/default/tablesplit/bde98f2342881203f12e6e4b78c032cb/.regioninfo
/hbase/data/default/tablesplit/bde98f2342881203f12e6e4b78c032cb/cf1
/hbase/data/default/tablesplit/bde98f2342881203f12e6e4b78c032cb/cf1/052546ee14744947858d2a02b5ba207e
/hbase/data/default/tablesplit/bde98f2342881203f12e6e4b78c032cb/cf2
/hbase/data/default/tablesplit/bde98f2342881203f12e6e4b78c032cb/recovered.edits
/hbase/data/default/tablesplit/eca04129bee2915460f33883c2a88610
/hbase/data/default/tablesplit/eca04129bee2915460f33883c2a88610/.regioninfo
/hbase/data/default/tablesplit/eca04129bee2915460f33883c2a88610/.tmp
/hbase/data/default/tablesplit/eca04129bee2915460f33883c2a88610/cf1
/hbase/data/default/tablesplit/eca04129bee2915460f33883c2a88610/cf1/6a9c7f8c770d41eea7a97857d77d4f4a
/hbase/data/default/tablesplit/eca04129bee2915460f33883c2a88610/cf1/9014d03fd0214bd3b7127f9c75f8044c
/hbase/data/default/tablesplit/eca04129bee2915460f33883c2a88610/cf2
/hbase/data/default/tablesplit/eca04129bee2915460f33883c2a88610/cf2/2a0a024e59554fd88ee7f4e803b21155
/hbase/data/default/tablesplit/eca04129bee2915460f33883c2a88610/cf2/64d590cc159947cfa636ae3958d25a9f
/hbase/data/default/tablesplit/eca04129bee2915460f33883c2a88610/recovered.edits
/hbase/data/hbase
/hbase/data/hbase/meta
/hbase/data/hbase/meta/.tabledesc
/hbase/data/hbase/meta/.tabledesc/.tableinfo.0000000001
/hbase/data/hbase/meta/.tmp
/hbase/data/hbase/meta/1588230740
/hbase/data/hbase/meta/1588230740/.regioninfo
/hbase/data/hbase/meta/1588230740/.tmp
/hbase/data/hbase/meta/1588230740/info
/hbase/data/hbase/meta/1588230740/info/4e3c7de674884722a81d36c69316510d
/hbase/data/hbase/meta/1588230740/oldWALs
/hbase/data/hbase/meta/1588230740/oldWALs/hlog.1413159428283
/hbase/data/hbase/meta/1588230740/recovered.edits
/hbase/data/hbase/namespace
/hbase/data/hbase/namespace/.tabledesc
/hbase/data/hbase/namespace/.tabledesc/.tableinfo.0000000001
/hbase/data/hbase/namespace/.tmp
/hbase/data/hbase/namespace/4af5da89bbca4427cadb5e3f69565733
/hbase/data/hbase/namespace/4af5da89bbca4427cadb5e3f69565733/.regioninfo
/hbase/data/hbase/namespace/4af5da89bbca4427cadb5e3f69565733/.tmp
/hbase/data/hbase/namespace/4af5da89bbca4427cadb5e3f69565733/info
/hbase/data/hbase/namespace/4af5da89bbca4427cadb5e3f69565733/info/dce2fa7900104d58bd4703f9be8ec9e7
/hbase/data/hbase/namespace/4af5da89bbca4427cadb5e3f69565733/info/f7e520ab8c094afd82787e6772cf15f7
/hbase/data/hbase/namespace/4af5da89bbca4427cadb5e3f69565733/recovered.edits
/hbase/data/ns1
/hbase/data/ns1/t1
/hbase/data/ns1/t1/.tabledesc
/hbase/data/ns1/t1/.tabledesc/.tableinfo.0000000001
/hbase/data/ns1/t1/.tmp
/hbase/data/ns1/t1/0115c691bef5a6ca70758e8fb2225688
/hbase/data/ns1/t1/0115c691bef5a6ca70758e8fb2225688/.regioninfo
/hbase/data/ns1/t1/0115c691bef5a6ca70758e8fb2225688/cf1
/hbase/data/ns1/t1/0115c691bef5a6ca70758e8fb2225688/cf1/4dc62b4237ad42f9b4087464df8dd5ff
/hbase/data/ns1/t1/0115c691bef5a6ca70758e8fb2225688/cf1/8919ab3b9ef448f9922411e1f5fc9429
/hbase/data/ns1/t1/0115c691bef5a6ca70758e8fb2225688/cf2
/hbase/data/ns1/t1/0115c691bef5a6ca70758e8fb2225688/recovered.edits
/hbase/hbase.id
/hbase/hbase.version
/hbase/oldWALs
/hbase/oldWALs/station10%2C60020%2C1417564300716.1417564303988
/hbase/oldWALs/station10%2C60020%2C1417564300716.1417564305564.meta
[/shell]

コメント