Hbase,Zookeeper完全分佈式安裝

前段時間安裝配置了hadoop集羣,這兩天想裝個hbase然後用些數據學習學習。網上教程有點多也有點亂,摸索了很久,所以還是記錄一下自己的配置經驗。過程中看了些博客感覺還是不錯的,分享一下: 
安裝配置教程: 
http://www.linuxidc.com/Linux/2012-12/76947.htm 
http://blog.csdn.net/lskyne/article/details/8900608 
淘寶應用介紹(科普一下): 
http://www.iteye.com/magazines/83


一. zookeeper安裝配置詳細步驟

  1. 已經配置好的hadoop集羣:master節點包括一個namenode和一個datanode(slave文件中設置datanode);mit02節點就是一個datanode。
  2. 首先在master節點:下載解壓zookeeper安裝包到/usr/local/hadoop/
  3. 進入conf/文件夾下,拷貝zoo_sample.cfg爲zoo.cfg
  4. 修改zoo.cfg文件如下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/hadoop/zk  
  #注意新建一個zk文件夾,並在裏面新建一個myid文件內容爲12(和下面server主機相對應)
dataLogDir=/usr/local/hadoop/zk
# the port at which the clients will connect
clientPort=2181
server.1=master:2888:3888
server.2=mit02:2888:3888
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
 5.scp 將zookeep文件夾複製到其它節點(記得修改myid內容)

二. hbase安裝配置詳細步驟

  1. 還是先在master節點下載hbase安裝包,注意與hadoop的版本匹配
  2. 進入conf/文件夾下,打開hbase-site.xml文件並修改如下
<configuration>
 <property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:9000/hbase</value>
</property>
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>
     <name>hbase.master</name>
     <value>master:60000</value>
</property>
<property>
    <name>dfs.support.append</name>
    <value>true</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>master,mit02</value>
</property>
<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/hadoop/zk</value>
</property>
<property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

3.修改hbase-env.sh,增加以下內容:

 export JAVA_HOME=/opt/software/java/jdk1.8.0_65
 export HADOOP_HOME=/usr/local/hadoop
 export HBASE_HOME=/usr/local/hadoop/hbase
  • 1
  • 2
  • 3

其實這個pids我一開始不知道什麼用處,後來啓動hbase的時候我發現只要啓動正常就會生成pids文件,當hbase出問題關閉的時候這個文件就自動刪除了,所以通過這個可以直觀的判斷運行情況。所以可以把這個路徑設置到自己比較方便看到的地方。

# The directory where pid files are stored. /tmp by default.
 export HBASE_PID_DIR=/usr/local/hadoop/pids
  • 1
  • 2
  • 3

另外一個比較關鍵的:這個默認值是true,就是用hbase自帶的zookeeper,我一開始想偷懶就直接這麼設置,不裝zookeeper,但是發現啓動不正常,或者關閉hbase的時候就報錯,不知道什麼原因,網上有說是只能在單機和僞分佈式下可以。我想還是自己配個zookeeper集羣吧,反正多學習學習。所以這裏設置成false。

# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
  • 1
  • 2
  • 3

4.在regionservers中添加內容如下(添加節點):

master
mit02
  • 1
  • 2

5.將配置好的hbase文件夾scp到其它節點對應目錄下

三、啓動/關閉 hbase

1.設置環境變量,/etc/profile增加如下內容:

export ZOOKEEPER_HOME=/usr/local/hadoop/zookeeper
export HBASE_HOME=/usr/local/hadoop/hbase
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin:$SQOOP_HOME/bin:$PATH
  • 1
  • 2
  • 3
  • 4
  • 5

2.在master節點啓動hadoop: start-all.sh

3.各個節點都啓動zookeep: zkServer.sh start

4.啓動hbase: start-hbase.sh

5.jps查看當前進程情況:

6512 ResourceManager
5984 NameNode
6144 DataNode
15570 HRegionServer
6647 NodeManager
15256 QuorumPeerMain
6349 SecondaryNameNode
16605 Jps
15406 Hmaster
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

6.網頁端查看:http://master:60010/master-status 
7.關閉hbase: stop-hbase.sh 
關閉zookeeper:zkServer.sh stop 
關閉hadoop: stop-all.sh

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章