HBASE比较特殊
配置:需要集群
1. 解压 hbase 安装包
[root@node01 sxt]# tar xf hbase-0.98.12.1-hadoop2-bin.tar.gz
2. 配置环境变量
[root@node01 sxt]#
vi + /etc/profile export JAVA_HOME=/usr/java/jdk1.7.0_67 export PATH=$PATH:$JAVA_HOME/bin export HADOOP_PREFIX=/opt/sxt/hadoop-2.6.5 export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin export ZOOKEEPER_PREFIX=/opt/sxt/zookeeper-3.4.6 export PATH=$PATH:$ZOOKEEPER_PREFIX/bin export HBASE_HOME=/opt/sxt/hbase-0.98.12.1 export PATH=$PATH:$HBASE_HOME/bin
[root@node01 sxt]# . /etc/profile
3. hbase-env.sh 中配置 JAVA_HOME[root@node01 sxt]# cd hbase-0.98.12.1/conf/ [root@node01 conf]# vi hbase-env.sh export JAVA_HOME=/usr/java/jdk1.7.0_67
4. 修改 hbase-site.xml 配置文件
[root@node01 conf]# vi hbase-site.xml hbase.rootdir file:///var/hbase/local hbase.zookeeper.property.dataDir /var/hbase/local/zookeeper
5. 启动 hbase [root@node01 conf]# start-hbase.sh
6. 进入 hbase 命令行
[root@node01 conf]# hbase shell
命令 hbase 删除已经打好的命令:ctrl+backspace
hbase(main):002:0> version
0.98.12.1-hadoop2, rb00ec5da604d64a0bdc7d92452b1e0559f0f5d73, Sun May 17 12:55:03 PDT 2015
hbase(main):003:0> whoami
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/sxt/hbase-0.98.12.1/lib/slf4j-log4j12- 1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/sxt/hadoop-2.6.5/share/hadoop/common/lib/slf4jlog4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBi nder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. root (auth:SIMPLE) groups: root 建表 表名 列族 列族 hbase(main):004:0>hbase(main):006:0> create 'person','name', 'age'
查看有哪些表
hbase(main):007:0> list
TABLE person 查看表描述
hbase(main):010:0> describe 'person'
Table person is ENABLED person COLUMN FAMILIES DESCRIPTION {NAME => 'age', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'} {NAME => 'name', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'} NAME:列族名 VERSIONS:最大版本号 MIN_VERSIONS:最小版本号 TTL(Time To Live):存活时间 IN_MEMORY:是否开启缓存,默认 false,应该开启,否则与 BLOCKCACHE 冲突 BLOCKCACHE:读缓存是否开启,默认开启,64M 插入数据 hbase(main):012:0> put 'person','0001','name:firstname','Jed' hbase(main):013:0> put 'person','0001','age:zhousui','20' 查看全部数据
hbase(main):014:0> scan 'person' ROW COLUMN+CELL 0001 column=age:zhousui, timestamp=1499929503879, value=20 0001 column=name:firstname, timestamp=1499929407656, value=Jed 查看个别数据
hbase(main):015:0> get 'person','0001','name:firstname' COLUMN CELL name:firstname timestamp=1499929407656, value=Jed 修改数据 hbase(main):016:0> put 'person','0001','name:firstname','Tom'
hbase(main):017:0> get 'person','0001','name:firstname' COLUMN CELL name:firstname timestamp=1499929924936, value=Tom 查看表空间
hbase(main):018:0> list_namespace NAMESPACE default #用户创建的表放在这里 hbase #系统表空间 进入存放数据的目录/var/hbase/local(在 hbase-site.xml 中配置过)
[root@node01 ~]# cd /var/hbase/local/
[root@node01 local]# ls archive data hbase.id hbase.version oldWALs WALs zookeeper data 是存放数据的目录,oldWAL 和 WALs 是 Hlog
[root@node01 local]# cd data
[root@node01 data]# ls default hbase
[root@node01 data]# cd default/
[root@node01 default]# ls person
[root@node01 default]# cd person/
[root@node01 person]# ls b14e1200e562fb736ce81df88d712823
[root@node01 person]# cd b14e1200e562fb736ce81df88d712823/
[root@node01 b14e1200e562fb736ce81df88d712823]# ls age name
[root@node01 b14e1200e562fb736ce81df88d712823]# cd age
[root@node01 age]# cd ls
总用量 0 age 和 name 下没有数据,因为数据还在内存中,我们设置强制溢写
hbase(main):028:0> flush 'person'
root@node01 b14e1200e562fb736ce81df88d712823]# cd age/
[root@node01 age]# ls 06c01947d23e4fafa3a95bd407cc8c94
[root@node01 age]# hbase hfile -p -f 06c01947d23e4fafa3a95bd407cc8c94 K: 0001/age:zhousui/1499931020776/Put/vlen=2/mvcc=0 V: 20 删除表
hbase(main):021:0> disable 'person' #先让表禁用 hbase(main):022:0> drop 'person' #再删除表 HBase
HBASE中需要主备模式
HBASE中删除表需要修改成disabled模式
HBASE中修改表中数据,需要设置表为enabled
HBASE中建表需要设置列族
HBASE中加载数据用put,并且还要加上数据ID号
HBASE的端口号是60010