Hbase安裝配置(含分散式ZooKeeper)
環境說明
系統為CentOS 6.0
192.168.255.128 =》 server01
192.168.255.130 =》 server02192.168.255.131 =》 server03/etc/hosts文件中有這些IP和域名的映射關係
配置server01在hadoop用戶下可以通過密鑰無需密碼訪問server02和server03
1. 安裝配置zookeeper
在三台伺服器上執行以下同樣的操作
a. 下載
wget http://apache.etoak.com//zookeeper/zookeeper-3.3.4/zookeeper-3.3.4.tar.gz -P /usr/local/src
b. 安裝
cd /usr/local/src
tar zxvf zookeeper-3.3.4.tar.gzmv zookeeper-3.3.4 /usr/local/zookeeperchown -R hadoop:hadoop /usr/local/zookeeper
解壓安裝,目錄的擁有者設置為zookeeper
c. 建立數據目錄
mkdir /data/zookeeper
chown -R hadoop:hadoop /data/zookeeperd. 修改配置文件
創建配置文件(注意:以下操作在hadoop用戶中進行)
su - hadoop
ln -s /usr/local/zookeeper zookeepercd zookeeper/confcp zoo_sample.cfg zoo.cfg
編輯配置文件
- vi zoo.cfg
- # 修改數據目錄dataDir為以下值
- dataDir=/data/zookeeper
- # 添加以下段落
- server.1=192.168.255.128:2887:3887
- server.2=192.168.255.130:2888:3888
- server.3=192.168.255.131:2889:3889
server.id=host:port:port標識不同的ZooKeeper伺服器
需要在每個伺服器的數據目錄中(這邊為/data/zookeeper)創建myid文件,文件的內容為以上對應的server.id中的id
- vi /data/zookeeper/myid
- # 值為各個伺服器對應的server.id中的id
- id
e. 配置環境變數並啟動ZooKeeper
- vi .bashrc
- export ZOOKEEPER_HOME=/usr/local/zookeeper
- PATH=$PATH:$ZOOKEEPER_HOME/bin
- exit
- su - hadoop
需要在每一台機器上都啟動
zkServer.sh start
f. 驗證
zkCli.sh -server 192.168.255.128:2181
[zk: 192.168.255.128:2181(CONNECTED) 0] help
......
顯示幫助內容
2. 安裝HBase
同樣也是三台伺服器執行同樣的操作
a. 下載
wget http://apache.etoak.com//hbase/hbase-0.90.5/hbase-0.90.5.tar.gz -P /usr/local/src
b. 安裝
cd /usr/local/src
tar zxvf hbase-0.90.5.tar.gzmv hbase-0.90.5 /usr/local/hbasechown -R hadoop:hadoop /usr/loca/hbase
c. 配置文件
su - hadoop
ln -s /usr/local/hbase hbasecd hbase/conf編輯配置文件hbase-site.xml
- vi hbase-site.xml
- <configuration>
- <property>
- <name>hbase.rootdir</name>
- <value>hdfs://server01:9000/hbase</value>
- <description>區域伺服器使用存儲HBase資料庫數據的目錄</description>
- </property>
- <property>
- <name>hbase.cluster.distributed</name>
- <value>true</value>
- <description>指定HBase運行的模式: false: 單機模式或者為分散式模式
- true: 全分布模式
- </description>
- </property>
- <property>
- <name>hbase.zookeeper.quorum</name>
- <value>server01,server02,server03</value>
- <description>ZooKeeper集群伺服器的位置</description>
- </property>
- </configuration>
編輯配置文件regionservers
- vi regionservers
- server02
- server03
設置環境變數hbase-env.sh
- vi hbase-evn.sh
- export HBASE_MANAGES_ZK=false
使用獨立的ZooKeeper時需要修改HBASE_MANAGES_ZK值為false,為不使用默認ZooKeeper實例。
d. hadoop和hbase版本匹配問題
使用的版本信息如下:
hadoop-0.20.205.0.tar.gz
hbase-0.90.5.tar.gz需要將hadoop主目錄下的hadoop-core-0.20.205.0.jar和主目錄中lib目錄下的commons-configuration-1.6.jar複製到HBase主目錄的lib目錄中,並刪除原來的hbase主目錄的lib目錄下的hadoop-core-0.20-append-r1056497.jar。
否則,會出現兩個錯誤,不能連接zookeeper和找不到common.configuration對應的類
e. 修改hadoop用戶環境變數並啟動HBase
- vi .bashrc
- export HBASE_HOME=/usr/local/hbase
- PAHT=$PATH:$HBASE_HOME/bin
exit
su - hadoop以上使(先退出hadoop用戶到root,然後登陸到hadoop用戶)環境變數生效
需要先啟動ZooKeeper(已經啟動)和hdfs文件系統
注意:以下兩個命令只需要在server01下啟動
start-dfs.sh
start-hbase.shf. 測試
hbase shell
hbase(main):001:0> status2 servers, 0 dead, 1.0000 average load推薦閱讀:
※TiDB 源碼閱讀系列文章(十一)Index Lookup Join
※Elasticell和Jepsen測試
※redis學習系列(五)--JedisPool與spring集成的實現及一致性哈希分析和基於Redis的分散式鎖
※Alluxio實戰手冊之異常排查篇