如何快速搭建HBase分布式NoSQL數(shù)據(jù)庫
博主在安裝HBase1.0的過程中參考了很多網(wǎng)上的資料進行配置安裝,得到的一個結(jié)論就是太坑嗲了,按照我看到的所有安裝部署文檔都走了一遍都存在這樣或者那樣的問題,***浪費了大把的時間也沒有搞定。建議后來者在搭建HBase分布式環(huán)境時多參考一下官方資料或者按照我整理的文檔進行搭建即可。
注釋:以下操作步驟博主均默認為您已經(jīng)完成hadoop和zookeeper安裝和配置,若沒有完成請參考博主大數(shù)據(jù)專欄的hadoop和zookeeper的安裝博文進行搭建后再實施hbase的相關(guān)部署工作。
筆者得到的教訓(xùn):
1、如果想速成***參考官方文檔進行學(xué)習(xí)拜讀;
2、如果時間來不及或者英文水平很low,可以參考其他博主的博客進行搭建,遇到問題時就具體問題具體解決,不要在按照其他博主的步驟再搞一遍,不要陷入惡性循環(huán)否則有可能把人搞死;
3、保持一顆百折不撓之心。
下面我們進入正題,開始我們的今天快速搭建hbase之旅。
一、安裝hbase之前的前置條件:
1、請確保已經(jīng)正確部署hadoop集群;
2、各計算節(jié)點系統(tǒng)時間保持同步;
3、確認ulimit和nproc在各計算節(jié)點值設(shè)置合理
一般情況下數(shù)據(jù)庫會在同一時間使用很多的文件句柄。大多數(shù)linux系統(tǒng)使用的默認值1024不能滿足數(shù)據(jù)庫的高并發(fā)要求,所以我們需要調(diào)整該參數(shù)。
修改方法如下所示:
在limits.conf文件內(nèi)添加如下內(nèi)容vi /etc/security/limits.conf:
###########################################################
hadoop soft nofile 32768
hadoop hard nofile 65536
hadoop soft nproc 32768
hadoop hard nproc 65536
4、配置環(huán)境變量,在管理hbase的用戶下的profile內(nèi)添加如下內(nèi)容:
- export HBASE_HOME=/usr/local/hbase
- export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:/usr/local/hbase/bin
二、Now開始我們的Hbase安裝之旅
1、下載hbase1.0的程序安裝包并解壓
tar -zxvf hbase-1.0.0-bin.tar.gz
2、移動到/usr/local目錄下并修改hbase屬主
mv hbase-1.0.0 /usr/local/hbase && chown -R hadoop:hadoop /usr/local/hbase
3、修改hadoop的配置文件hdfs-site.xml,添加內(nèi)容如下:
dfs.datanode.max.xcievers
4096
4、修改hbase的配置文件vi /usr/local/hbase/conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_40
export HBASE_MANAGES_ZK=false #配置zookeeper獨立啟停
5、配置hbase-site.xml文件內(nèi)容如下所示:
- hbase.rootdir
- hdfs://hbase01:9000/hbase
- The directory shared byRegionServers
- hbase.cluster.distributed
- true
- hbase.zookeeper.property.clientPort
- 4180
- The same as your zoo.cfg's parameter:clientPort=4180
- hbase.zookeeper.quorum
- hbase01,hbase02,hbase03
- The same as your zookeeper
- hbase.zookeeper.property.dataDir
- /home/hadoop/zoodata
- Property from ZooKeeper's config zoo.cfg's dataDir
6、分別在hbase服務(wù)器的三個節(jié)點上創(chuàng)建data目錄
mkdir -p /home/hadoop/zookeeper
7、配置regionservers內(nèi)容如下所示:
- # vi ./conf/regionservers
- hbase01
- hbase02
- hbase03
8、到此hbase的配置完成,下面將以上程序拷貝到其他region節(jié)點上去
- scp -rp /usr/local/hbase root@ip1:/usr/local
- scp -rp /usr/local/hbase root@ip2:/usr/local
- chown -R hadoop:hadoop /usr/local/hbase
9、啟動zookeeper
- 在每個節(jié)點都執(zhí)行
- zkServer.sh start
- 檢查zookeeper是否正確啟動
- zkServer.sh status
10、啟動hbase數(shù)據(jù)庫
- start-hbase.sh
- #在啟動hbase之前請務(wù)必確認hadoop及zookeeper服務(wù)已經(jīng)被正確的啟動
11、測試habse分布式數(shù)據(jù)庫是否已經(jīng)正確運行
- #hbase shell
- #創(chuàng)建表
- hbase(main):002:0> create 'fengzhanhai','feng'
- #插入數(shù)據(jù)
- hbase(main):010:0> put 'fengzhanhai','2','feng:a','100'
- #取一行數(shù)據(jù)
- hbase(main):017:0> get 'fengzhanhai',1
- COLUMN CELL
- feng:a timestamp=1429509649018, value=100
- 1 row(s) in 0.1620 seconds