今天教你們如何在centerOS7上搭建hbase的集羣環境,首先給你們介紹一下hbasejava
HBase是創建在Hadoop文件系統之上的分佈式面向列的數據庫。它是一個開源項目,是橫向擴展的。 HBase是一個數據模型,相似於谷歌的大表設計,能夠提供快速隨機訪問海量結構化數據。它利用了Hadoop的文件系統(HDFS)提供的容錯能力。 它是Hadoop的生態系統,提供對數據的隨機實時讀/寫訪問,是Hadoop文件系統的一部分。 人們能夠直接或經過HBase的存儲HDFS數據。使用HBase在HDFS讀取消費/隨機訪問數據。 HBase在Hadoop的文件系統之上,並提供了讀寫訪問web
HDFS | HBase |
---|---|
HDFS是適於存儲大容量文件的分佈式文件系統 | HBase是創建在HDFS之上的數據庫。 |
HDFS不支持快速單獨記錄查找 | HBase提供在較大的錶快速查找 |
它提供了高延遲批量處理;沒有批處理概念 | 它提供了數十億條記錄低延遲訪問單個行記錄(隨機存取)。 |
它提供的數據只能順序訪問 | HBase內部使用哈希表和提供隨機接入,而且其存儲索引,可將在HDFS文件中的數據進行快速查找。 |
Row Key: 行鍵,Table的主鍵,Table中的記錄按照Row Key排序數據庫
Timestamp: 時間戳,每次數據操做對應的時間戳,能夠看做是數據的version numberbash
Column Family:列簇,Table在水平方向有一個或者多個Column Family組成,一個Column Family中能夠由任意多個Column組成,即Column Family支持動態擴展,無需預先定義Column的數量以及類型,全部Column均以二進制格式存儲,用戶須要自行進行類型轉換。分佈式
好了,說了這麼多你們可能光看概念也是雲裏霧裏,因此就直接帶你們搭建環境,作一些簡單的應用來體會hbase的用法了。oop
首先須要有hbase的軟件包,能夠自行下載,我給你們提供的是hbase-1.3.1
版本,點擊下載ui
其次把下載的軟件放入centerOS7系統下的本身的目錄下,個人目錄是在/home/mmcc
下。而後進入到該目錄解壓文件spa
cd /home/mmcc
tar -zxvf hbase-1.3.1-bin.tar.gz
複製代碼
而後開始配置hbase-env.sh
文件,進入hbase根目錄設計
vi /conf/hbase-env.sh //編輯環境變量配置腳本
export JAVA_HOME=/home/mmcc/jdk1.8 //配置java環境變量,把井號去掉換上本身的jdk路徑
export HBASE_MANAGES_ZK=true //表示使用自帶的zookeeper
export HBASE_PID_DIR=/home/mmcc/hbase-1.3.1/hbase_tmp //修改pid文件的保存路徑
複製代碼
其次再配置hbse-site.xml
文件3d
vi /conf/hbase-site.xml
<property>
<name>hbase.rootdir</name> //設置hbase在hdfs上根目錄
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name> //是否開啓集羣
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name> // 設置zookeeper集羣節點
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.tmp.dir</name> //設置臨時文件目錄
<value>/home/mmcc/hbase-1.3.1/data/tmp</value>
</property>
<property> //設置web管理界面端口
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
複製代碼
設置zookeeper集羣節點時,若是zookeeper單獨設置了端口 則加上master:port ,默認是master:2181,默認的能夠不寫
而後配置hbase的集羣節點服務
vi /conf/regionservers
slave1
slave2
複製代碼
把zookeeper的服務節點都配置進去
scp -r /home/mmcc/hbase-1.3.1 slave1/slave1節點的ip:/home/mmcc
scp -r /home/mmcc/hbase-1.3.1 slave2/slave2節點的ip:/home/mmcc
複製代碼
把/hbase-1.3.1
目錄下的全部文件複製到slave1節點上的/home/mmcc
目錄下,因爲咱是經過克隆的方式建立的虛擬機,因此其實文件目錄都是同樣的
而後將hbase的bin目錄配置到環境變量裏,每一個節點都配置好
vi /etc/profile
HBASE_HOME=/home/mmcc/hbase-1.3.1
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$HBASE_HOME/bin:$PATH:.
source /etc/profile //使環境變量生效
複製代碼
start-hbase.sh //前提是已經啓動了hadoop集羣服務
複製代碼
內部會啓動一個自帶的zookeeper集羣,同時啓動master和節點服務.啓動以後經過jps
查看一下當前的服務
能夠發現,集羣已經啓動成功了。
如今咱是經過自帶的zookeeper做爲協調服務的,因此啓動步驟以下
start-all.sh
start-hbase.sh
中止步驟
stop-hbase.sh
stop-all.sh
首先在配置hbase-env.sh
文件時,把export HBASE_MANAGES_ZK=false
設置爲false,表示使用自定義的zookeeper的集羣。同時若是本身單獨配置了zookeeper集羣的端口,不是默認的2181。則在hbase-site.xml
中配置zookeeper集羣時須要帶上端口
<property>
<name>hbase.zookeeper.quorum</name> // 設置zookeeper集羣節點
<value>master:port,slave1:port,slave2:port</value>
</property>
複製代碼
使用自定義的zookeeper的集羣啓動順序
中止步驟
關於zk集羣的搭建和使用在後面章節會講到