- 准備工作
Hbase的搭建是依賴於Hadoop的,Hbase的數據文件實際上存儲在HDFS文件系統中,所以我們需要先搭建hadoop環境,之前的博文中已經搭建過了(詳見http://www.cnblogs.com/bxljoy/p/3880250.html ),這里就不在贅述。
- 版本選擇
由於之前搭建的hadoop2.2.0社區版,hadoop和hbase之間存在版本的兼容性問題,並不是所有的版本都可以相互兼容,所以在此我選擇:Hbase 0.98版本,能夠完美兼容hadoop2.2.0版本。我們進入hbase的lib目錄中可以看到jar包的版本:
如果不是以上的2.2.0版本的jar包,需要與hadoop的jar包版本保持一致,從hadoop的share/hadoop目錄中找到相對應的jar包進行替換。
- 配置文件
進入hbase的conf目錄下,對配置文件進行修改:
regionservers文件:
vi regionservers master slave1 slave2
hbase-env.sh文件:
export JAVA_HOME=/opt/jdk1.7 # The directory where pid files are stored. /tmp by default. export HBASE_PID_DIR=/var/hadoop/pids # Where log files are stored. $HBASE_HOME/logs by default. # export HBASE_LOG_DIR=${HBASE_HOME}/logs
hbase-site.xml文件:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.master</name> <value>hdfs://master:60000</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2222</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master, slave1, slave2</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hadoop2/zookeeper</value> </property> <property> <name>hbase.regionserver.handler.count</name> <value>100</value> </property> </configuration>
- 分發hbase並啟動
將以上配置好的hbase文件夾,整個分發到集群的各個機器中,然后使用命令啟動hbase:bin/start-hbase.sh。
然后使用jps命令查看hbase啟動必須的進程:
[hadoop2@master conf]$ jps 7586 DataNode 2968 HRegionServer 2728 HQuorumPeer 7894 ResourceManager 8002 NodeManager 2827 HMaster 9331 Jps 7463 NameNode 7750 SecondaryNameNode
其中,標紅的3個進程為hbase啟動后,master主機中會出現的進程,HMaster進程為master進程,在普通的slave機器中只會出現,HRegionServer和HQuorumPeer兩個Hase相關的進程,前者為RegionServer的進程,后者則是hbase自啟動的ZooKeeper的進程。當然了,啟動hbase之前必須先啟動hadoop,所以必然存在DataNode、NodeManager等hadoop相關的進程。
值得一提的是,hbase的運行必須依賴於Zookeeper,默認情況下,hbase啟動的時候會自啟動Zookeeper,其中的配置選項存在於/conf/hbase-env.sh:
# Tell HBase whether it should manage it's own instance of Zookeeper or not. export HBASE_MANAGES_ZK=true
默認為true,表示hbase自己管理Zookeeper,如果修改為false,則需要在hbase-site.xml中配置Zookeeper, 並自行安裝Zookpeer集群。