HBASE部分:HBASE的常用操作

本文详细介绍HBase的安装配置步骤,包括环境变量设定、hbase-env.sh与hbase-site.xml配置,以及如何启动HBase并进行基本的CRUD操作。通过实例演示,读者将学会如何创建表、插入数据、查询数据、更新数据以及管理表空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值