Hbase安装和使用测试
Hbase和Hadoop一样也分为单机、伪分布式和分布式三种部署,这里首先介绍伪分布式部署。
一、伪分布式部署
1.解压到目标文件夹:
#tar -zxvf hbase-0.90.4.tar.gz
2.修改环境变量
export HBASE_HOME=/root/hbase-0.90.4
export PATH=$PATH:$HBASE_HOME/bin
编辑HBASE_HOME/conf/hbase-env.sh,添加JAVA_HOME
编辑HBASE_HOME/conf/hbase-site.
xml,添加hbase数据的存放位置(单机模式):
hbase.rootdir
file:///root/hbase_data
默认是在/tmp下,重启
系统会导致数据丢失。
在伪分布式下,需要将数据存放路径指向namenode,存放在HDFS上,同时hbase.cluster.distributed设置为true
该配置如下(80为我的namenode运行端口):
hbase.rootdir
hdfs://localhost/hbase
hbase.cluster.distributed
true
3.启动hbase
#start-hbase.sh
《实战Hadoop》中指出,这里会因为hadoop和hbase的客户端协议不一致而导致HMaster启动异常(启动异常则jps显示不到HMaster进程,这个脚本并不会提示错误,需要查看脚本日志:HBASE_HOME/logs下)。
问题解决方法为:用HADOOP_HOME/hadoop-0.20.2-core.jar替换HADOOP_HOME/lib下的hadoop-core-0.20-append-r1056497.jar
注意:该包在HADOOP_HOME下并未找到,经过检查,应该为HBASE_HOME下:
#cp /root/hadoop/hadoop-0.20.2/hadoop-0.20.2-core.jar /root/hbase-0.90.4/lib
#rm /root/hbase-0.90.4/libhadoop-core-0.20-append-r1056497.jar
查看hbase命令:
#hbase
进入hbase shell命令执行窗口:
#hbase shell
正常输出应该如下:
[root@rhel-h1 lib]# jps
352 DataNode
1097 Jps
666 TaskTracker
473 SecondaryNameNode
873 HQuorumPeer
32718 NameNode
917 HMaster --hbase master,默认端口为60000
553 JobTracker
1015 HRegionServer --hbase region server
[root@rhel-h1 lib]# hbase shell
HBase Shell; enter 'help
' for list of supported commands.
Type "exit" to leave the HBase Shell
Version 0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011
hbase(main):001:0> status --查看服务状态
1 servers, 0 dead, 0.0000 average load
Hbase(伪分布式)正式安装完毕
4.Hbase使用测试
HBase是用于存储松散耦合的数据,比起数据库对数据的约束非常少。列可以有很多属性,每一行可以有自己的属性。这种方式存储数据是很方便的,因为现实中很多数据确实是非结构化的,Google自己可能没有做类似于Hive这样的东西。
help查看命令集:
hbase(main):002:0> help
HBase Shell, version 0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011
Type 'help "COMMAND"', (e.g. 'help "get"' -- the quotes are necessary) for help on a specific com
mand.
Commands are grouped. Type 'help "COMMAND_GROUP"', (e.g. 'help "general"') for help on a command group.
COMMAND GROUPS:
Group name: general
Commands: status, version
Group name: ddl
Commands: alter, create, describe, disable, drop, enable, exists, is_disabled, is_enabled, list
Group name: dml
Commands: count, delete, deleteall, get, get_counter, incr, put, scan, truncate
Group name: tools
Commands: assign, balance_switch, balancer, close_region, compact, flush, major_compact, move, split, unassign, zk_dump
Group name: replication
Commands: add_peer, disable_peer, enable_peer, remove_peer, start_replication, stop_replication
SHELL USAGE:
Quote all names in HBase Shell such as table and column names. Commas delimit
command parameters. Type after entering a command to run it.
Dictionaries of configuration used in the creation and alteration of tables are
Ruby Hashes. They look like this:
{'key1' => 'value1', 'key2' => 'va