基於Hadoop集羣的HBase集羣的配置
1.準備工作
a.已經完成安裝的Hadoop集羣環境
b.所需要的軟件包
zookeeper-3.4.4.tar.gz下載地址:
http://downloads.gotsoft.com/pub/apache/zookeeper/zookeeper-3.4.4/
hbase-0.94.6.1tar.gz下載地址:
http://labs.mop.com/apache-mirror/hbase/stable/hbase-0.94.6.1.tar.gz
2.單獨安裝的ZooKeeper集羣,不基於Hbase集羣管理
a.在Master節點上解壓zookeeper
l ##建議使用hduser權限,避免之後出現SSH錯誤
hduser@master:/usr/local$sudo tar -zxvfzookeeper-3.4.4.tar.gz
l ##server後面的數字是zooKeeper識別時後的Id,需要與後面的設置保持一致
hduser@master:/usr/local$tvi /zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/data/zookeeper
clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
root@master:/usr/local# chown -Rhduser:hadoop zookeeper
3.將zookeeper複製到其他機器
hduser@master:/usr/local$scp -r zookeeper-3.4.5hduser@slave1:/home/hduser
hduser@master:/usr/local$ scp -rzookeeper-3.4.5 hduser@slave2:/home/hduser
hduser@slave1:~#sudomv zookeeper-3.4.5/ /usr/local/zookeeper-3.4.5
hduser@slave2:~$sudomv zookeeper-3.4.5/ /usr/local/zookeeper-3.4.5
4.在每臺機器配置的dataDir目錄下面,創建myid文件標誌當前主機
Master: $touch /data/zookeeper/myid
$echo "1" >/data/zookeeper/myid
Slave1: $mkdir -p /data/zookeeper
$touch /data/zookeeper/myid
$echo "3" > /data/zookeeper/myid
Slave2: $mkdir -p/data/zookeeper
$touch /data/zookeeper/myid
$echo "5" > /data/zookeeper/myid
5. 啓動zookeeper集羣
hduser@master:/usr/local/zookeeper/bin$./zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
【問題1】Starting zookeeper ... ./zkServer.sh: line 113:/data/zookeeper/zookeeper_server.pid: Permission denied
FAILED TO WRITE PID
原因是剛纔/data/zookeeper是root權限,而不是hduser的,修改權限之~
【問題1解決】root@master:/# chown -Rhduser:hadoop /data
其他兩個slave節點也一樣~
然後問題解決:
hduser@master:/usr/local/zookeeper$ cd bin
hduser@master:/usr/local/zookeeper/bin$ ./zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
其他節點也同樣啓動zookeeper~
hduser@master:/usr/local/zookeeper/bin$
hduser@slave1:/usr/local/zookeeper/bin$./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
【問題2】Error contacting service. It is probably notrunning.
1)查看zoopkeeper.out
r@232] - Unexpected exception,tries=0, connecting to slave1/192.168.123.12:2888
java.net.ConnectException: Connection refused
atjava.net.PlainSocketImpl.socketConnect(Native Method)
atjava.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
atjava.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
atjava.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
root@master:/usr/local/zookeeper/bin#cat zookeeper.out
2013-04-27 00:22:37,595 [myid:] - INFO [main:QuorumPeerConfig@101] - Reading configuration from:/usr/local/zookeeper/bin/../conf/zoo.cfg
2013-04-27 00:22:37,615 [myid:] - ERROR[main:QuorumPeerMain@85] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException:Error processing /usr/local/zookeeper/bin/../conf/zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:121)
atorg.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
atorg.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by:java.lang.IllegalArgumentException: dataLogDir /home/hduser/zookeeper/log ismissing.
atorg.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:247)
atorg.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:117)
... 2 more
Invalid config, exiting abnormally
【錯誤2解決】沒有將zookeeper複製到其他的節點!!!
沒有在每個節點啓動zookeeper
6.安裝配置Hbase集羣
a>啓動HDFS集羣實例,並創建目錄
##hdfs://master01:54310/hbase【注意與hadoop,core-site.xml中的fs.default.name中的端口號保持一致,統一設置爲54310;hbase-site.xml中的hbase:rootdir中的端口號】
hduser@master:/usr/local/hadoop$bin/hadoop fs -mkdir /hbase
Warning: $HADOOP_HOME is deprecated.
13/04/27 02:08:46 INFO ipc.Client: Retryingconnect to server: master/127.0.1.1:54310. Already tried 0 time(s).
13/04/27 02:08:47 INFO ipc.Client: Retryingconnect to server: master/127.0.1.1:54310. Already tried 1 time(s).
13/04/27 02:08:48 INFO ipc.Client: Retryingconnect to server: master/127.0.1.1:54310. Already tried 2 time(s).
13/04/27 02:08:49 INFO ipc.Client: Retryingconnect to server: master/127.0.1.1:54310. Already tried 3 time(s).
13/04/27 02:08:50 INFO ipc.Client: Retryingconnect to server: master/127.0.1.1:54310. Already tried 4 time(s).
13/04/27 02:08:51 INFO ipc.Client: Retryingconnect to server: master/127.0.1.1:54310. Already tried 5 time(s).
13/04/27 02:08:52 INFO ipc.Client: Retryingconnect to server: master/127.0.1.1:54310. Already tried 6 time(s).
13/04/27 02:08:53 INFO ipc.Client: Retryingconnect to server: master/127.0.1.1:54310. Already tried 7 time(s).
13/04/27 02:08:54 INFO ipc.Client: Retryingconnect to server: master/127.0.1.1:54310. Already tried 8 time(s).
13/04/27 02:08:55 INFO ipc.Client: Retryingconnect to server: master/127.0.1.1:54310. Already tried 9 time(s).
Bad connection to FS. command aborted.exception: Call to master/127.0.1.1:54310 failed on connection exception:java.net.ConnectException: Connection refused
hduser@master:/usr/local/hadoop$
Call tomaster/127.0.1.1:54310 failed【修改localhost地址爲127.0.0.1】
HBASE SHELL 錯誤NativeException: org.apache.hadoop.hbase.MasterNotRunningException:null
【解決步驟:】
1、啓動hadoop後,需要等一段時間,再開啓hbase
2、去掉hadoop的安全模式:
hadoop dfsadmin -safemode leave
3、把/etc/hosts裏的master01的IP改爲服務器當前的IP
4、確認hbase的hbase-site.xml中
<name>hbase.rootdir</name>
<value>hdfs://localhost:8020/hbase</value>
與hadoop的core-site.xml中
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
紅字部分保持一致
5、確認hadoop版本是0.20.2,hbase版本是0.20.6
6、重新執行./start-hbase.sh之前,先kill掉當前的hbase和zookeeper進程
之後再執行:
$bin/hadoop fs -mkdir /hbase
b> 解壓hbase-0.94.5.tar.gz,修改配置文件,正式安裝HBase:
l #vi hbase-0.94.5/conf/hbase-env.sh
exportJAVA_HOME=/usr/java/jdk1.6.0_43
exportHBASE_CLASSPATH=$HBASE_HOME/
#exportHBASE_HEAPSIZE=128
#exportHBASE_OPTS="-XX:+UseConcMarkSweepGC"
exportHBASE_MANAGES_ZK=false
#vi hbase-0.94.5/conf/regionservers
slave1
slave2
l 將hbase-webapps目錄改名爲webapps
hduser@master:/usr/local/hbase-0.94.6$ mvhbase-webapps/ /webapps
l 檢查HBase配置,複製到其他的slave節點:
hduser@master:/usr/local$ scp -rhbase-0.94.6 hduser@slave1:/home/hduser/
hduser@master:/usr/local$ scp -rhbase-0.94.6 hduser@slave2:/home/hduser/
l 啓動HBase:
hduser@master:/usr/local$ ./hbase-0.94.6/bin/start-hbase.sh
starting master, logging to/usr/local/hbase-0.94.6/bin/../logs/hbase-hduser-master-master.out
slave2: starting regionserver, logging to/usr/local/hbase-0.94.6/bin/../logs/hbase-hduser-regionserver-slave2.out
slave1: starting regionserver, logging to/usr/local/hbase-0.94.6/bin/../logs/hbase-hduser-regionserver-slave1.out
l 查看相關進程:
hduser@master:/usr/local$ jps
3339 QuorumPeerMain
8210 JobTracker
7894 DataNode
9187 HMaster
8126 SecondaryNameNode
8459 TaskTracker
9328 Jps
7659 NameNode
hduser@master:/usr/local$
hduser@slave1:~$ jps
5416 TaskTracker
5879 Jps
5210 DataNode
3323 QuorumPeerMain
hduser@slave1:~$
hduser@slave2:/usr/local/hbase-0.94.6$ jps
5083 TaskTracker
5544 Jps
4877 DataNode
3042 QuorumPeerMain
【錯誤】13/04/27 05:47:21ERROR client.HConnectionManager$HConnectionImplementation: Check the valueconfigured in 'zookeeper.znode.parent'. There could be a mismatch with the oneconfigured in the master.
l 去掉hadoop的安全模式
hduser@master:/usr/local/hadoop$ bin/hadoopdfsadmin -safemode leave
Warning: $HADOOP_HOME is deprecated.
Safe mode is OFF
【解決方法】:http://blog.sina.com.cn/s/blog_718335510100zchp.html
l 檢驗HBase安裝完成:
hbase(main):003:0> create'member','member_id','address','info'
0 row(s) in 1.6400 seconds
hbase(main):004:0> list
TABLE
member
1 row(s) in 0.0730 seconds
hbase(main):006:0* describe 'member'
DESCRIPTION ENABLED
{NAME => 'member', FAMILIES => [{NAME => 'address',true
DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER =>'NON
E', REPLICATION_SCOPE => '0', VERSIONS => '3', COMP
RESSION => 'NONE', MIN_VERSIONS => '0', TTL =>'214
7483647', KEEP_DELETED_CELLS => 'false',BLOCKSIZE
=> '65536', IN_MEMORY => 'false', ENCODE_ON_DISK=>
'true', BLOCKCACHE => 'true'}, {NAME => 'info',DA
TA_BLOCK_ENCODING => 'NONE', BLOOMFILTER =>'NONE',
REPLICATION_SCOPE => '0', VERSIONS => '3',COMPRES
SION => 'NONE', MIN_VERSIONS => '0', TTL =>'214748
3647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE=>
'65536', IN_MEMORY => 'false', ENCODE_ON_DISK =>'t
rue', BLOCKCACHE => 'true'}, {NAME =>'member_id',
DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER =>'NONE
', REPLICATION_SCOPE => '0', VERSIONS => '3',COMPR
ESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147
483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE=
> '65536', IN_MEMORY => 'false', ENCODE_ON_DISK=>
'true', BLOCKCACHE =>'true'}]}
1 row(s) in 0.2170 seconds