前段時間安裝配置了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安裝配置詳細步驟
- 已經配置好的hadoop集羣:master節點包括一個namenode和一個datanode(slave文件中設置datanode);mit02節點就是一個datanode。
- 首先在master節點:下載解壓zookeeper安裝包到/usr/local/hadoop/
- 進入conf/文件夾下,拷貝zoo_sample.cfg爲zoo.cfg
- 修改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文件內容爲1或2(和下面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安裝配置詳細步驟
- 還是先在master節點下載hbase安裝包,注意與hadoop的版本匹配
- 進入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