伪分布安装
下载、解压文件
tar xzvf hbase-0.94.1.tar.gz
修改配置文件
1、 hbase-env.sh
exportJAVA_HOME=/usr/java/jdk1.6.0_26
export HBASE_MANAGES_ZK=false
2、 hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://ubuntu:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
<description>ZooKeeper location</description>
</property>
</configuration>
3、 /etc/profile
export HBASE_HOME=/_nosql/hbase
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HBASE_HOME/bin
source /etc/profile
启动、停止
root@ubuntu:/_nosql/hbase# bin/start-hbase.sh
starting master, logging
to /_nosql/hbase/logs/hbase-root-master-ubuntu.out
ubuntu: starting regionserver, logging
to /_nosql/hbase/bin/../logs/hbase-root-regionserver-ubuntu.out
说明:
hbase-root-master-ubuntu.out保存路径是根据$HBASE_HOME来确定,
hbase-root-regionserver-ubuntu.out是根据start-hbase.sh的相对路径来确定的
root@ubuntu:/_nosql/hbase# bin/stop-hbase.sh
启动时先启动Hadoop,再启动Zookeeper,最后启动Hbase;停止时相反.
root@ubuntu:/_nosql# ls
derby.log hadoop hbase hive sqoop TempStatsStore test.java zookeeper zookeeper.out
root@ubuntu:/_nosql# hadoop/bin/start-all.sh
starting namenode, logging to /_nosql/hadoop/libexec/../logs/hadoop-root-namenode-ubuntu.out
localhost: starting datanode, logging to /_nosql/hadoop/libexec/../logs/hadoop-root-datanode-ubuntu.out
localhost: starting secondarynamenode, logging to /_nosql/hadoop/libexec/../logs/hadoop-root-secondarynamenode-ubuntu.out
starting jobtracker, logging to /_nosql/hadoop/libexec/../logs/hadoop-root-jobtracker-ubuntu.out
localhost: starting tasktracker, logging to /_nosql/hadoop/libexec/../logs/hadoop-root-tasktracker-ubuntu.out
root@ubuntu:/_nosql# jps
1458 DataNode
1657 JobTracker
1819 Jps
1568 SecondaryNameNode
1772 TaskTracker
1345 NameNode
root@ubuntu:/_nosql# hadoop/bin/hadoop dfsadmin -safemode get
Safe mode is ON
root@ubuntu:/_nosql# ls zookeeper/bin
README.txt zkCleanup.sh zkCli.cmd zkCli.sh zkEnv.cmd zkEnv.sh zkServer.cmd zkServer.sh
root@ubuntu:/_nosql# zookeeper/bin/zkServer.sh start
JMX enabled by default
Using config: /_nosql/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
root@ubuntu:/_nosql# jps
1458 DataNode
1657 JobTracker
1950 QuorumPeerMain
1966 Jps
1568 SecondaryNameNode
1772 TaskTracker
1345 NameNode
root@ubuntu:/_nosql# hbase/bin/start-hbase.sh
starting master, logging to /_nosql/hbase/logs/hbase-root-master-ubuntu.out
ubuntu: starting regionserver, logging to /_nosql/hbase/bin/../logs/hbase-root-regionserver-ubuntu.out
root@ubuntu:/_nosql# jps
2200 HRegionServer
1458 DataNode
1657 JobTracker
2305 Jps
1950 QuorumPeerMain
2105 HMaster
1568 SecondaryNameNode
1772 TaskTracker
1345 NameNode
root@ubuntu:/_nosql# hadoop/bin/hadoop dfsadmin -safemode get
Safe mode is OFF
root@ubuntu:/_nosql# hbase/bin/hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.1, r1365210, Tue Jul 24 18:40:10 UTC 2012
hbase(main):001:0> list
TABLE
t1
t2
wordcount
3 row(s) in 0.6400 seconds
hbase(main):002:0> scan 't1'
ROW COLUMN+CELL
row2 column=column1:1, timestamp=1349926120457, value=a1
row2 column=column1:2, timestamp=1349926120457, value=a2
row2 column=column1:3, timestamp=1349926120457, value=a3
row3 column=column1:1, timestamp=1349926120463, value=c11
row3 column=column1:2, timestamp=1349926120463, value=c12
row3 column=column1:3, timestamp=1349926120463, value=c13
row3 column=column2:a, timestamp=1349926120463, value=c2a
row3 column=column2:b, timestamp=1349926120463, value=c2b
row3 column=column2:c, timestamp=1349926120463, value=c2c
2 row(s) in 0.5560 seconds
hbase(main):003:0>
分布式安装
1、安装hbase-0.94.1版本之前先安装hadoop 1.0.3:
10.10.4.55 master
10.10.4.59 slave1
10.10.4.60 slave2
10.10.4.61 slave3
10.10.4.62 slave4
10.10.4.63 slave5
2、拷贝hbase-0.94.1.tar.gz到/usr/soft下。
3、解压tar –zxvf hbase-0.94.1.tar.gz
4、修改/usr/soft/hbase-0.90.1/conf/hbase-env.sh文件。
指定本地的JDK安装路径: export JAVA_HOME=/usr/java/jdk1.6.0_26
修改使用自带zookeeper: export HBASE_MANAGES_ZK=true
5、修改/jz/hbase-0.20.5/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.port</name>
<value>60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2,slave3,slave4,slave5/value>
</property>
<!--
此处为防止服务器时间不一致引起空指针异常
-->
<property>
<name>hbase.master.maxclockskew</name>
<value>3600000</value>
<description>Time difference of regionserver from master</description>
</property>
</configuration>
6、修改/usr/soft/hbase0941/conf/regionservers文件,内容如下:
slave1
slave2
slave3
slave4
slave5
7、修改/etc/profile文件,在文件末尾加上环境变量:
export HBASE_HOME=/usr/soft/hbase0941/hbase-0.20.5
export PATH=$PATH:$HBASE_HOME/bin
source /etc/profile,使之生效。
8、在slave1----slave5上分别同样安装。
9、通过shell脚本启动hbase:
/usr/soft/hbase0941/bin/start-hbase.sh
查看启动进程:
10、进入/usr/soft/hbase0941/bin目录,执行hbsae shell命令,进入hbase控制台,显示如下:
>> hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Version: 0.20.5, r956266, Sat Jun 19 12:25:12 PDT 2010
hbase(main):001:0>
11、在hbase控制台输入list命令,如果正常执行,表示hbase启动成功。如下:2
hbase(main):001:0> list
0 row(s) in 0.0610 seconds
hbase(main):002:0>
12、WEB查看hbase
查看Master http://10.10.4.55:60010/master.jsp
查看Region Server http:// 10.10.4.55:60030/regionserver.jsp(暂不能打开)
查看ZK Tree http:// 10.10.4.55:60010/zk.jsp
一些异常的和注意事项
1、安装hbase 0.94.1版本自带了zookeeper,可以使用自带的zookeeper,在hbase-env.sh中最后一行将# export HBASE_MANAGES_ZK=true注释去掉。如果使用自己安装的zookeeper,将true改为false。
2、通过shell控制台向hbase插入中文数据将会报错,这是由于hbase中只是存放字节,采用程序将汉字改为字节录入即可。
3、在hbase脚本中执行shell命令,如果出现以下错误,表示hbase中有节点不能正常运行。
NativeException: org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to contact region server 192.168.3.139:60020 for region .META.,,1, row '', but failed after 7 attempts.
4、hbase结点之间时间不一致造成regionserver启动失败处理方案:
方案1:在hbase-site.xml添加配置
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>Time difference of regionserver from master</description>
</property>
方案2:修改各结点时间,使其误差在30s内