HBase1.2.6環境搭建
HBase1.2.6叢集搭建
搭建環境
Ubuntu 16.04
HBase是基於Hadoop的,Hadoop的搭建可以看我的前一篇文章,有詳細的介紹 http://blog.csdn.net/tft3640/article/details/78971668
1、 Hadoop搭建
a) 配置固定IP
i. 192.168.1.10 master.ubuntu.com master
ii. 192.168.1.11 slave1.ubuntu.com slave1
iii. 192.168.1.12 slave2.ubuntu.com slave2
iv. 192.168.1.13 slave3.ubuntu.com slave3
注:註釋掉127.0.1.1這一行。
b) Hadoop叢集監控相關埠
服務 |
Web介面 |
預設埠 |
NameNode |
http://namenode_host:port/ |
50070 |
MapReduce JobHistory Server |
http://jobhistoryserver_host:port/ |
19888 |
2、 配置Zookeeper
b) 當前穩定版為3.4.10,下載,並解壓至/usr/local/下(tar -zxf zookeeper-3.4.10.tar.gz-C /usr/local/)
複製到每個叢集節點相同的路徑下。
c) 配置環境變數,在/etc/profile檔案中增加
export ZK_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZK_HOME/bin
d) 配置檔案zoo.cfg
i. 在$ZK_HOME/conf中,複製zoo_sample.cfg到zoo.cfg
ii. 在zoo.cfg中新增
dataDir=/usr/lib/zookeeper #原檔案中已有 這個坑了我兩天。。
clientPort=2181 #原檔案中已有
tickTime=2000 #原檔案中已有
initLimit=5 #原檔案中已有
syncLimit=2 #原檔案中已有
dataLogDir=/var/log/zookeeper
server.0=master:2888:3888
server.1=slave1:2888:3888
server.2=slave2:2888:3888
server.3=slave3:2888:3888
1. dataDir:儲存記憶體中資料庫快照的位置(需要先手動建立對應目錄)
2. dataLogDir:事物日誌寫入指定的目錄中(需要先手動建立對應目錄)
3. clientPort:監聽客戶端連線的埠
4. tickTime:基本事件單元 ,以毫秒為單位。它用來控制心跳和超時,預設情況下最小的會話超時時間為兩倍的tickTime
5. initLimit:允許follower(相對於leader而言的“客戶端”)連線並同步到leader的初始化連線時間,它是以tickTime的倍數來表示。當初始化連線時間超過設定倍數的tickTime時,則連線失敗。
6. syncLimit:leader與follower之間傳送訊息時,請求和應答的時間長度。如果follower在設定的時間內不能與leader通訊,那麼此follower將被丟棄。
7. server.x=[hostname]:[port1]:[port2]:其中x是一個數字,表示這個是第幾號伺服器,與myid(下面會有myid的配置)檔案中的id是一致的;右邊可以配置兩個埠,第1個埠用於follower和leader之間的資料同步和其他通訊,第2個埠用於leader選舉過程中投票通訊。
e) 配置myid檔案。
在master、slave1、slave2、slave3的/usr/lib/zooKeeper目錄(注意這個目錄是dataDir目錄)新建檔案myid,內容分別為數值0,1,2,3
f) 啟動/關閉ZooKeeper叢集及狀態檢視(如果是啟動和關閉命令,則在所有安裝ZooKeeper服務的節點都需要執行)
cd $ZK_HOME
bin/zkServer.sh start|stop|status
g) 注意防火牆,需要開啟2181、2888、3888埠。
3、 配置HBase
b) sudo tar -zxvfhbase-1.2.6-bin.tar.gz -C /usr/local/,將HBase解壓
c) 配置環境變數,增加:
export HBASE_HOME=/usr/local/hbase-1.2.6
export PATH=$PATH:$HBASE_HOME/bin
d) 進行$HBASE_HOME/conf,修改hbase-site.xml檔案
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:8020/hbase</value>
</property>
<property>
<name>hbase.master</name>
<value>master</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.ZooKeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.ZooKeeper.quorum</name>
<value>master,slave1,slave2,slav3</value>
</property>
<property>
<name>ZooKeeper.session.timeout</name>
<value>60000000</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
</configuration>
e) 配置hbase-evn.sh
export JAVA_HOME=/usr/local/jdk1.8.0_151
export HBASE_CLASSPATH=/usr/local/hbase-1.2.6/etc/Hadoop
export HBASE_MANAGES_ZK=false
f) 配置regionservers
slave1
slave2
slave3
g) 執行HBase
$HBASE_HOME/bin/start-hbase.sh 開啟
$HBASE_HOME/bin/stop-hbase.sh 關閉
注:先開啟hadoop在master節點上使用bashstart-all.sh,再在每個節點上開啟zookeeper,使用zkServer.sh start,最後開啟HBase。