2008-11-03 15:48:37克理斯 在 Internet!

Hbase 的簡易安裝手冊

ref from :此篇文章內容引用自 國網中心雲端技術研究小組之雲端資料庫(Cloud DB)研究人員之共同研究心得分享

HBase

【簡易安裝手冊】

  • How to download and run HBase? in about 10 Minutes.
    • 以下有幾個簡單的步驟:(包含了下載.安裝及配置HBase)
      • 首先需要先下載HBase最新且穩定的版本Download
      • 接著將下載的檔案移到你想要跑HBase的目錄下,如/home/user/hbase
      • 移動到/home/user/hbase此目錄下
        $ cd /home/user/hbase
      • 編輯conf/hbase-env.sh檔案,加入以下這行 (需視使用者的JAVA路徑而定)
        $ vi conf/hbase-env.shexport JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.03
      • 啟動hbase
        $ bin/start-hbase.sh
      • 可以在預設的logs/目錄下看到不少logs檔案
      • 可以執行以下指令進到HQL指令模式,可以試試看
        $ bin/hbase shellHbase Shell, 0.0.2 version.Copyright (c) 2007 by udanax, licensed to Apache Software Foundation.Type 'help;' for usage.hql > help;Type 'help COMMAND;' to see command-specific usage.+-------------------------+-------------------------+-------------------------+| Command                 | Description             | Example                 |+-------------------------+-------------------------+-------------------------+| EXIT                    | Exit shell              | EXIT;                   |+-------------------------+-------------------------+-------------------------+| ALTER                   | Alter structure of table| ALTER TABLE table_name A||                         |                         | DD column_spec | ADD (co||                         |                         | lumn_spec, column_spec, ||                         |                         | ...) | CHANGE column_fam||                         |                         | ily column_spec | DROP c||                         |                         | olumn_family_name | CHAN||                         |                         | GE column_spec;         |+-------------------------+-------------------------+-------------------------+| CREATE                  | Create tables           | CREATE TABLE table_name ||                         |                         | (column_family_name [MAX||                         |                         | _VERSIONS=n] [MAX_LENGTH||                         |                         | =n] [COMPRESSION=NONE|RE||                         |                         | CORD|BLOCK] [IN_MEMORY] ||                         |                         | [BLOOMFILTER=NONE|BLOOMF||                         |                         | ILTER|COUNTING_BLOOMFILT||                         |                         | ER|RETOUCHED_BLOOMFILTER||                         |                         |  VECTOR_SIZE=n NUM_HASH=||                         |                         | n], ...)                |+-------------------------+-------------------------+-------------------------+| INSERT                  | Insert values into table| INSERT INTO table_name (||                         |                         | column_name, ...) VALUES||                         |                         |  ('value', ...) WHERE ro||                         |                         | w='row_key' [TIMESTAMP '||                         |                         | timestamp'];            |+-------------------------+-------------------------+-------------------------+| DROP                    | Drop tables             | DROP TABLE table_name [,||                         |                         |  table_name] ...;       |+-------------------------+-------------------------+-------------------------+| TRUNCATE                | Truncate table is used t| TRUNCATE TABLE table_nam||                         | o clean all data from a | e;                      ||                         | table                   |                         |+-------------------------+-------------------------+-------------------------+| DESCRIBE                | Print table information | [DESCRIBE|DESC] table_na||                         |                         | me;                     |+-------------------------+-------------------------+-------------------------+| JAR                     | Hadoop RunJar util      | JAR jarFile [mainClass] ||                         |                         | arguments...;           |+-------------------------+-------------------------+-------------------------+| FS                      | Hadoop FsShell; entering| FS [-option] arguments..||                         |  a lone 'FS;' will emit | ;                       ||                         | usage                   |                         |+-------------------------+-------------------------+-------------------------+| DELETE                  | Delete table data       | DELETE {column_name, [, ||                         |                         | column_name] ... | *} FR||                         |                         | OM table_name WHERE row=||                         |                         | 'row-key';              |+-------------------------+-------------------------+-------------------------+| SELECT                  | Select values from table| SELECT {column_name, [, ||                         |                         | column_name] ... | expr[||                         |                         | alias] | * } FROM table_||                         |                         | name [WHERE row='row_key||                         |                         | ' | STARTING FROM 'row-k||                         |                         | ey' [UNTIL 'stop-key']] ||                         |                         | [NUM_VERSIONS = version_||                         |                         | count] [TIMESTAMP 'times||                         |                         | tamp'] [LIMIT = row_coun||                         |                         | t] [INTO FILE 'file_name||                         |                         | '];                     |+-------------------------+-------------------------+-------------------------+| SHOW                    | Show information about s| SHOW TABLES [or substitu||                         | elected title           | tion variable name];    |+-------------------------+-------------------------+-------------------------+| CLEAR                   | Clear the screen        | CLEAR;                  |+-------------------------+-------------------------+-------------------------+hql > help;Type 'help COMMAND;' to see command-specific usage.+-------------------------+-------------------------+-------------------------+| Command                 | Description             | Example                 |+-------------------------+-------------------------+-------------------------+| EXIT                    | Exit shell              | EXIT;                   |+-------------------------+-------------------------+-------------------------+| ALTER                   | Alter structure of table| ALTER TABLE table_name A||                         |                         | DD column_spec | ADD (co||                         |                         | lumn_spec, column_spec, ||                         |                         | ...) | CHANGE column_fam||                         |                         | ily column_spec | DROP c||                         |                         | olumn_family_name | CHAN||                         |                         | GE column_spec;         |+-------------------------+-------------------------+-------------------------+| CREATE                  | Create tables           | CREATE TABLE table_name ||                         |                         | (column_family_name [MAX||                         |                         | _VERSIONS=n] [MAX_LENGTH||                         |                         | =n] [COMPRESSION=NONE|RE||                         |                         | CORD|BLOCK] [IN_MEMORY] ||                         |                         | [BLOOMFILTER=NONE|BLOOMF||                         |                         | ILTER|COUNTING_BLOOMFILT||                         |                         | ER|RETOUCHED_BLOOMFILTER||                         |                         |  VECTOR_SIZE=n NUM_HASH=||                         |                         | n], ...)                |+-------------------------+-------------------------+-------------------------+| INSERT                  | Insert values into table| INSERT INTO table_name (||                         |                         | column_name, ...) VALUES||                         |                         |  ('value', ...) WHERE ro||                         |                         | w='row_key' [TIMESTAMP '||                         |                         | timestamp'];            |+-------------------------+-------------------------+-------------------------+| DROP                    | Drop tables             | DROP TABLE table_name [,||                         |                         |  table_name] ...;       |+-------------------------+-------------------------+-------------------------+| TRUNCATE                | Truncate table is used t| TRUNCATE TABLE table_nam||                         | o clean all data from a | e;                      ||                         | table                   |                         |+-------------------------+-------------------------+-------------------------+| DESCRIBE                | Print table information | [DESCRIBE|DESC] table_na||                         |                         | me;                     |+-------------------------+-------------------------+-------------------------+| JAR                     | Hadoop RunJar util      | JAR jarFile [mainClass] ||                         |                         | arguments...;           |+-------------------------+-------------------------+-------------------------+| FS                      | Hadoop FsShell; entering| FS [-option] arguments..||                         |  a lone 'FS;' will emit | ;                       ||                         | usage                   |                         |+-------------------------+-------------------------+-------------------------+| DELETE                  | Delete table data       | DELETE {column_name, [, ||                         |                         | column_name] ... | *} FR||                         |                         | OM table_name WHERE row=||                         |                         | 'row-key';              |+-------------------------+-------------------------+-------------------------+| SELECT                  | Select values from table| SELECT {column_name, [, ||                         |                         | column_name] ... | expr[||                         |                         | alias] | * } FROM table_||                         |                         | name [WHERE row='row_key||                         |                         | ' | STARTING FROM 'row-k||                         |                         | ey' [UNTIL 'stop-key']] ||                         |                         | [NUM_VERSIONS = version_||                         |                         | count] [TIMESTAMP 'times||                         |                         | tamp'] [LIMIT = row_coun||                         |                         | t] [INTO FILE 'file_name||                         |                         | '];                     |+-------------------------+-------------------------+-------------------------+| SHOW                    | Show information about s| SHOW TABLES [or substitu||                         | elected title           | tion variable name];    |+-------------------------+-------------------------+-------------------------+| CLEAR                   | Clear the screen        | CLEAR;                  |+-------------------------+-------------------------+-------------------------+hql > 
      • 要結束hbase server 可用以下指令,而避免使用kill pid指令來殺掉pid,尤其是恐怖的指令kill -9 pid
        $ bin/stop-hbase.sh
        • 解釋: kill -9 是當 kill -15 砍不掉的時候 才用,kill -15 會去幫你注意檔案或裝置讀寫有沒有關起來,kill -9 就不管,直接停掉process (reference from sunny)
      • 注意:如果有要跑一個遠端的HDFS,而希望可以用hbase連接,此時需要編輯conf/hbase-site.xml檔案,如下
        $ vi conf/hbase-site.xml hbase.rootdirfile:///tmp/hbase-${user.home}/hbasehdfs://localhost:9000/hbaseThe directory shared by region servers.Should be fully-qualified to include the filesystem to use.

【常見問題】

      HBase資料庫系統在執行關閉伺服器指令後,再重新啟動時裡面的資料表都會遺失?
Ans: 在hbase/conf目錄裡有一個預設的組態檔hbase-default.xml,裡面的hbase.rootdir屬性預設值是"file:///tmp/hbase-${user.home}/hbase", 這表示hbase的檔案系統預設是掛載在使用本機的/tmp目錄底下,如果是沒有特別去備份/tmp目錄,或是把/tmp掛載到ram disc裡的情況下,裡面的資料庫資料會在重新啟動作業系統後被作業系統自動清空,因此,只要把hbase.rootdir指定到其他可以永續存放的磁碟空間,就可以解決資料表存放的問題。hbase.rootdir可以直接設定在hbase-default.xml裡或是hbase-site.xml,hbase系統讀取設定檔的優先權順序是hbase-site.xml高於hbase-default.xml,如果想保留原本的預設值,一般是建議直接放到hbase-site.xml就可以了。屬性內容如下:

 value可以自由設定路徑,description非必填,name則是固定的屬性名稱hbase.rootdirfile:///${user.home}/hbase/dbstoredThe directory shared by region servers.Should be fully-qualified to include the filesystem to use.