hbase,zookeeper分佈式集羣安裝
- jar包選用
hadoop - 2.7.3
zookeeper - 3.4.8
hbase - 1.2.5
Zookeeper分佈式安裝
- 在etc/hosts中配置集羣節點
192.168.56.100 master
192.168.56.101 slave1
192.168.56.102 slave2
- 將zookeeper/conf目錄下面的 zoo_sample.cfg修改爲zoo.cfg 添加內容:
1. tickTime=2000
2. dataDir=/home/hadoop/storage/zookeeper
3. clientPort=2181
4. initLimit=5
5. syncLimit=2
6. server.1=slave-01:2888:3888
7. server.2=slave-02:2888:3888
8. server.3=slave-03:2888:3888
- 遠程複製分發安裝軟件
scp -r hbase root@192.168.56.103:/usr/local/
- 設置myid
在我們配置的dataDir指定的目錄下面,創建一個myid文件,裏面內容爲一個數字,用來標識當前主機,conf/zoo.cfg文件中配置的server.X中X爲什麼數字,則myid文件中就輸入這個數字
- etc/profile中添加Path
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
- 啓動Zookeeper集羣
zkServer.sh start
- 安裝驗證
zkServer.sh status
HBASE分佈式安裝
- 在etc/profile中配置hbasepath
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
- 更改hbase/conf hbase-site.xml
<!--hbase.rootdir 對應hdfs中的 core-site.xml中的fs.defaultFS-->
<configuration>
<!-- 指定HBase在HDFS上面創建的目錄名hbase -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<!—對應zookeeper zoo.cfg中 dataDir路徑 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/zookeeper</value>
<description>Property from ZooKeeper config zoo.cfg.
The directory where the snapshot is stored.
</description>
</property>
<!-- 開啓集羣運行方式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/var/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
</configuration>
hbase.zookeeper.property.dataDir 一定要配置 我入了這個坑
不配置啓動hbase會報ERROR: Can't get master address from ZooKeeper; znode data == null錯誤
網上說的報錯原因基本我都試過了 。沒用 這是找不到zookeeper得節點位置。
[官網配置更詳細](http://hbase.apache.org/book.html#quickstart_fully_distributed)
- 修改hbase-env.sh
export JAVA_HOME=/usr/java/default
<!--對應 hbase.tmp.dir 中得路徑 不配置關閉hbase找不到pid -->
export HBASE_PID_DIR=/var/hbase/pids
<!--關閉內置zk-->
export HBASE_MANAGES_ZK=false
- 修改regionservers
<!--我這裏配置得兩臺-->
slave1 slave2
創建backup-masters文件 這個是當hbase主宕掉後備份的master 裏面寫 salve3,當master宕掉 salve3就是主
將hadoop中的 core-site.xml hdfs-site.xml複製到hbase/conf的路徑下
啓動hbase 先啓動hadoop ZK
啓動HBase集羣:
bin/start-hbase.sh
單獨啓動一個HMaster進程:
bin/hbase-daemon.sh start master
單獨停止一個HMaster進程:
bin/hbase-daemon.sh stop master
單獨啓動一個HRegionServer進程:
bin/hbase-daemon.sh start regionserver
單獨停止一個HRegionServer進程:
bin/hbase-daemon.sh stop regionserver