hadoop Hbase體系架構與安裝(6)

Hbase體系結構與安裝java

1. Hbase版本與Hadoop版本搭配比較煩,若是版本搭配不對,就不能運行,這個能夠在百度和google中查詢相應的版本搭配shell

2. Hbase安裝:單機模式數據庫

(1)下載及解壓hbase安裝包緩存

(2) 修改conf/hbase-env.sh腳本,設置環境變量eclipse

設置JAVA_HOME環境變量分佈式

export JAVA_HOME=/usr/java/jdk1.6.00_26/ 設置jdk環境變量oop

(3) 編輯hbase-site.xml進行配置性能

先建立用於存放數據的目錄/home/grid/hbase-0.90.5/datagoogle

<configuration>.net

<property>

<name>hbase.rootdir</name>

<value>file:///home/grid/hbase-0.90.5/data</value>

</property>

</configuration>

單機模式採用的是本地文件系統模式

(4) 啓動Hbase

bin/start-hbase.sh

(5) 驗證Hmaster已經啓動

jps 查看與java有關的進程

Hmaster 進程啓動了表明成功

(6) 進入shell

bin/hbase shell

3. Hbase安裝:僞分佈模式

(1) 在單點模式的基礎上繼續

(2) 編輯hbase-env.sh增長HBASE_CLASSPATH環境變量

用於幫助hbase找到hadoop

export JAVA_HOME=/usr/java/jdk1.6.00_26/

export HBASE_CLASSPATH=/home/grid/hadoop-0.20.2/conf

(3) 編輯hbase-site.xml打開分佈模式

<configuration>

<property>

<name>hbase.rootdir</name>

<value>hdfs://192.169.80.100:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

</configuration>

與hadoop分佈式文件系統融合

(4) 覆蓋hadoop核心jar包

這是關鍵一步,最好在網上找一份成功安裝的指南文件,不一樣的版本會有不同的地方

主要目的是防止引文hbase和hadoop版本不一樣出現兼容問題,形成hmaster啓動異常

clip_image002

(5) 啓動hbase

(6) 驗證啓動

clip_image004

4. Hbase安裝:徹底分佈模式

(1) 配置hosts,確保涉及的主機名都可解析爲ip

(2) 編輯hbase-env.xml

(3) 編輯hbase-site.xml

(4) 編輯regionservers文件

(5) 把Hbase複製到其餘節點

(6) 啓動Hbase

(7) 驗證啓動

這個能夠在網上查找徹底分佈模式安裝文檔,詳細的安裝文檔

5.Web管理界面

60010端口

6.管理操做hbase的方式

(1) Shell

在hbase的bin目錄下

./hbase shell 進入shell命令行界面

help 能夠列出各類命令出來

1) 查詢數據庫集羣狀態

status

2) 查詢數據庫版本

version

3) 建立表

create ‘member’, ‘menber_id’,’address’,’info’

表名 列族 列族 列族

4) 查看錶信息

list

describe ‘member’

5) 刪除列族:alter ,disable,enable

alter ‘member’,{NAME=>’member_id’,METHOD=>’delete’}

disable ‘member’

alter ‘member’,{NAME=>’member_id’,METHOD=>’delete’}

enable ‘member’

6) 列出全部的表

list

7) 刪除表

disable ‘temp_table’

drop ‘temp_table’

8) 查詢一個表是否存在

exists ‘member’

9) 判斷表是否enable或disable

is_enabled ‘member’

is_disabled ‘member’

10) 插入記錄

put ‘member’,’scutshuxue’,’info:age’,’24’

表名 行健

11) 獲取一個行健的全部數據

get ‘member’,’scutshuxue’

12) 獲取一個行健,一個列族的全部數據

get ‘member’,’scutshuxue’,’info’

13) 獲取一個行健,一個列族中一個列的全部數據

get ‘member’,’scutshuxue’,’info:age’

14) 更新一條記錄

put ‘member’,’scutshuxue’,’info:age’,’99’

15) 經過timestamp來獲取數據

get ‘member’,’scutshuxue’,{COLUMN=>’info:age’,TIMESTAMP=>1321586238965}

16) 刪除指定行健的字段

delete ‘member’,’temp’,’info:age’

表名 行健 列

17) 刪除整行

deleteall ‘member’,’xiaofeng’

18) 查詢表中有多少行

count ‘member’

19) 清空表

truncate ‘member’

20) 全表掃描

scan ‘member’

(2) Hbase API

《Hbase權威指南》第3-5章

用eclipse開發hbaseAPI程序大體和map-reduce程序相似

7.什麼狀況下使用Hbase?

成熟的數據分析主題,查詢模式已經確立而且不輕易改變

傳統的關係型數據庫已經沒法承受負荷,高速插入,大量讀取

適合海量的,但同時也是簡單的操做

8.應用場景

(1)場景一

clip_image006

1)關係型數據庫的困難

簡單的事情只要上了量就會變成無比複雜的事情

Order by耗費不少性能

大量發生,但又沒法分佈式處理

顧客須要實時看到本身的足跡,所以不能使用緩存技巧

2)Hbase迎接挑戰

天生就是面向時間戳查詢

基於行健的查詢異常快速,特別是最近的數據被放在內存的memstore裏,徹底沒有I/O開銷

分佈式化解負荷

3)模式設計

行健: userid

列族和列:book:bookid

爲了充分利用分佈式,能夠用reverse key,hash等技巧改造行健

(2)場景二:商品推薦

clip_image008

1) 用關係行數據庫實現

clip_image010

clip_image012

2) 使用Hbase:表設計與查詢實現

兩個表,一個是u-t,另外一個是t-u

u-t表的結構:行健爲userid,列族和列爲thread:threadid

t-u表的結構:行健爲threadid,列族和列爲user:userid

查詢:如今t-u表從threadid->userid,再在u-t表從userid->threadid ,在計算機程序中實現去重和統計功能

9.輔助索引

例子:學生表(學號,身份證號,姓名,性別,系,年齡),有時在學號上查詢,有時在身份證號上查詢

主表:行健爲學號,列族爲學生,下面的列是身份證號,姓名,性別,系,年齡

輔助(索引)表:行健爲身份證號,列族和列爲學號

10.複合鍵設計

clip_image014

複合鍵的好處

便於分佈(行健看起來比較隨機)

便於多條件伸縮查詢

相關文章
相關標籤/搜索