Hbase介紹 HBase是一個分散式的、面向列的開源資料庫,源於Google的一篇論文《BigTable:一個結構化數據的分散式存儲系統》。HBase以表的形式存儲數據,表有行和列組成,列劃分為若幹個列族/列簇(column family)。欲瞭解HBase的官方資訊,請訪問[HBase官方網站] ...
Hbase介紹
HBase是一個分散式的、面向列的開源資料庫,源於Google的一篇論文《BigTable:一個結構化數據的分散式存儲系統》。HBase以表的形式存儲數據,表有行和列組成,列劃分為若幹個列族/列簇(column family)。欲瞭解HBase的官方資訊,請訪問[HBase官方網站](http://hbase.apache.org/)。 HBase的運行有三種模式:單機模式、偽分散式模式、分散式模式。 單機模式:在一臺電腦上安裝和使用HBase,不涉及數據的分散式存儲;偽分散式模式:在一臺電腦上模擬一個小的集群;分散式模式:使用多台電腦實現物理意義上的分散式存儲。這裡出於學習目的,只重點討論單機模式和偽分散式模式。
本文運行環境是在Ubuntu-64位系統下,HBase版本為hbase-1.1.2,這是目前已經發行的已經編譯好的穩定的版本,帶有src的文件是未編譯的版本,這裡只要下載bin版本hbase-1.1.2-bin.tar.gz就好了。hbase-1.1.2-bin.tar.gz.mds是用來校驗文件hbase-1.1.2-bin.tar.gz是否完整,一般不需要校驗,如果您想要校驗可以參考Hadoop安裝教程 中對Hadoop的校驗。
HBase的安裝
1.解壓安裝包hbase-1.1.2-bin.tar.gz至路徑 /usr/local,命令如下:
sudo tar -zxf ~/下載/hbase-1.1.2-bin.tar.gz -C /usr/local
此處我的HBase在下載後所處的文件夾不是在下載目錄下,找到文件夾下載後所在的位置,將其複製到下載目錄下,但是由於文件的許可權是只讀,所以無法直接複製,打開文件的屬性,將其許可權進行修改,然後粘貼到下載目錄下。
另外,在解壓後可以通過圖形界面找到該文件的位置,此處所指的路徑/usr/local,對應圖形界面的文件夾是:其他位置/電腦/usr/local。
2.將解壓的文件名hbase-1.1.2改為hbase,以方便使用,命令如下:
sudo mv /usr/local/hbase-1.1.2 /usr/local/hbase
3.配置環境變數
將hbase下的bin目錄添加到path中,這樣,啟動hbase就無需到/usr/local/hbase目錄下,大大的方便了hbase的使用。下麵的部分還是切換到了/usr/local/hbase目錄操作,有助於理解運行過程。
編輯~/.bashrc文件
vi ~/.bashrc
如果沒有引入過PATH請在~/.bashrc文件尾行添加如下內容:
export PATH=$PATH:/usr/local/hbase/bin
編輯完成後,再執行source命令使上述配置在當前終端立即生效,命令如下:
source ~/.bashrc
4.添加HBase許可權
cd /usr/local sudo chown -R hadoop ./hbase #將hbase下的所有文件的所有者改為hadoop,hadoop是當前用戶的用戶名。
chown -R hadoop:hadoop ./spark # hadoop是當前登錄Linux系統的用戶名,把當前目錄下的spark子目錄的所有許可權,賦予給用戶hadoop
5.查看HBase版本,確定hbase安裝成功,命令如下:
/usr/local/hbase/bin/hbase version
看到以上輸出消息表示HBase已經安裝成功,接下來將分別進行HBase單機模式和偽分散式模式的配置。
HBase配置
HBase有三種運行模式,單機模式、偽分散式模式、分散式模式。作為學習,重點討論單機模式和偽分散式模式。
以下先決條件很重要,比如沒有配置JAVA_HOME環境變數,就會報錯。
(1)jdk
(2)Hadoop( 單機模式不需要,偽分散式模式和分散式模式需要)
(3)SSH
1.單機模式配置
(1)配置/usr/local/hbase/conf/hbase-env.sh 。配置JAVA環境變數,並添加配置HBASE_MANAGES_ZK為true,用vi命令打開並編輯hbase-env.sh,命令如下:
vi /usr/local/hbase/conf/hbase-env.sh
配置JAVA環境變數,jdk的安裝目錄預設是 /usr/lib/jvm/java-1.7.0-openjdk, 則JAVA _HOME =/usr/lib/jvm/java-7-openjdk-amd64,其中java-1.7.0-openjdk是你的jdk版本;配置HBASE_MANAGES_ZK為true,表示由hbase自己管理zookeeper,不需要單獨的zookeeper。hbase-env.sh中本來就存在這些變數的配置,只需要刪除前面的#並修改配置內容即可(#代表註釋):
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 export HBASE_MANAGES_ZK=true
添加完成後保存退出即可。
(2)配置/usr/local/hbase/conf/hbase-site.xml
打開並編輯hbase-site.xml,命令如下:
vi /usr/local/hbase/conf/hbase-site.xml
在啟動HBase前需要設置屬性hbase.rootdir,用於指定HBase數據的存儲位置,因為如果不設置的話,hbase.rootdir預設為/tmp/hbase-${user.name},這意味著每次重啟系統都會丟失數據。此處設置為HBase安裝目錄下的hbase-tmp文件夾即(/usr/local/hbase/hbase-tmp),添加配置如下:
(3)接下來測試運行。首先切換目錄至HBase安裝目錄/usr/local/hbase;再啟動HBase。命令如下:
cd /usr/local/hbase bin/start-hbase.sh bin/hbase shell