集群安装:
1、 上传安装包
2、 解压安装包tar -xvf hbase-0.96.2-hadoop2-bin.tar.gz -C /home/hadoop/
3、 修改hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_55
//告诉hbase使用外部的zk
export HBASE_MANAGES_ZK=false
4、 修改 hbase-site.xml
<property> <!-- 指定hbase在HDFS上存储的路径 -->
<name>hbase.rootdir</name>
<value>hdfs://nameservice/hbase</value>
</property>
<property> <!-- 指定hbase是分布式的 -->
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property> <!-- 指定zk的地址,多个用“,”分割 -->
<name>hbase.zookeeper.quorum</name>
<value>cluster4:2181,cluster5:2181,cluster6:2181</value>
</property>
5、 配置regionservers 文件,将所有的节点机全部配置在这个里面
6、 要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下 因为配置hbase-site.xml文件用到了nameservice,在hdfs-site.xml和core-site.xml指定了nameservice对应的namenode有哪些(这个hadoop是安装了HA)
7、 将配置的hbase文件全部scp到其他服务器上面
8、 在主节点启动hbase ./start-hbase.sh ,我们可以使用jps 查看到主节点上面有 HMaster进程,其他节点上面有HRegionServer进程
9、 为了安全起见,我们需要启动备用的主节点,可以直接用命令hbase-daemon.sh start master(其他的节点上面运行)
10、 登陆管理界面http://192.168.1.101:60010 我们可以查看hbase的信息
11、 我们还可以登录备机http://192.168.1.102:60010 我们可以看到这儿是standby的
测试hbase
1、 随便在那台机器上 在hbase的安装目录bin目录下面运行 ./hbase shell启动hbase的客户端,显示如下
[hadoop@master bin]$ ./hbase shell
2015-09-05 05:57:08,134 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter ‘help’ for list of supported commands.
Type “exit” to leave the HBase Shell
Version 0.96.2-hadoop2, r1581096, Mon Mar 24 16:03:18 PDT 2014
hbase(main):001:0>
2、输入 help 然后 可以看到一列shell命令。这里的帮助很详细,要注意的是表名,行和列需要加引号。
创建一个名为 test 的表,这个表只有一个 列族 为 cf。可以列出所有的表来检查创建情况,然后插入些值。
hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'table'
test
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds
hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0450 seconds
以上我们分别插入了3行。第一个行key为row1, 列为 cf:a, 值是 value1。HBase中的列是由 列族前缀和列的名字组成的,以冒号间隔。例如这一行的列名就是a.
检查插入情况.
3、scan这个表,操作如下
hbase(main):007:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1288380727188, value=value1
row2 column=cf:b, timestamp=1288380738440, value=value2
row3 column=cf:c, timestamp=1288380747365, value=value3
3 row(s) in 0.0590 seconds
4、get一行,操作如下
hbase(main):008:0> get 'test', 'row1'
COLUMN CELL
cf:a timestamp=1288380727188, value=value1
1 row(s) in 0.0400 seconds
5、disable 再 drop 这张表,可以清除你刚刚的操作
hbase(main):012:0> disable 'test'
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop 'test'
0 row(s) in 0.0770 seconds
6、关闭shell
hbase(main):014:0> exit
7、 停止 HBase
运行停止脚本来停止HBase.
$ ./bin/stop-hbase.sh
stopping hbase……………