Hbase的安装部署及基本语法

来源:互联网 发布:红叶知弦小说 编辑:程序博客网 时间:2024/06/10 11:40

Hbase的安装部署

1、前提条件

  1hadoop环境 启动相关的Hadoop进程

2)zookeeper环境 启动zookeeper

2、安装Hbase

解压tar -zxf  hbase-0.98.6-cdh5.3.6.tar.gz -C /opt/modules/cdh

##配置hbase-env.sh

export HBASE_MANAGES_ZK=false      //124

export JAVA_HOME=/opt/modules/jdk1.7.0_67    //29

##配置hbase-site.xml

<property>

<name>hbase.rootdir</name>

<value>hdfs://[hostname]:8020/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>[hostname]</value>

</property>

#### regionservers文件配置

[hostname]

3、启动Hbase

         ${HOME_Hbase}目录下:

方式一:单独启动

bin/hbase-daemon.sh start master

bin/hbase-daemon.sh start regionserver

方式二:同时启动

bin/start-hbase.sh

停止时将start对应修改为stop即可

解决hbase shell中无法退格的问题:

xshell

文件-属性-终端-键盘-两个都选择ASCII 127

CRT

选项-会话选项-仿真-终端-选择linux

选项-会话选项-映射键--勾选上

基本语法

${HOME_Hbase}目录下:

$ bin/hbase version      //查看hbase的版本


$ bin/hbase shell       //连接Hbase


连接hbase之后,Hbase的常用命令

如何创建命名空间:

> create_namespace  '命名空间名'     //创建命名空间


两种创建表的方式:

>create 命名空间:表名,列簇名1,列簇名2,.........     //创建表格(默认版本数为1)


查看表结构

>desc 命名空间:表名


>create '命名空间:表名,{NAME=>'列簇名',VERSIONS=>版本个数},{.......}    //创建表格(自定义版本数)


查看表结构


scan 扫描表

> scan '命名空间:表名' 扫描全表


> scan '命名空间:表名' ,{COLUMNS => '列簇:列名'}  扫描该表的该列簇下的所有数据


> scan '命名空间:表名' ,{COLUMNS => '列簇:列名'}  扫描该表的该列簇下该列名的所有数据


> scan '命名空间:表名' ,{COLUMNS => ['列簇:列名','列簇:列名' ]}  扫描多列数据


> scan '命名空间:表名' ,{COLUMNS => 列簇,STARTROW=>'rowkey'}   指定扫描的起始rowkey  


> scan '命名空间:表名' ,{COLUMNS => 列簇,STARTROW=>'rowkey',STOPROW=>'rowkey}    给定扫描数据rowkey的范围,默认是左闭右开 


> scan '命名空间:表名' ,{LIMIT=>n}    只扫描设定n(正整数)条数据


> scan '命名空间:表名' ,{COLUMNS => '列簇:列名', LIMIT=>n}    组合使用



get 获取数据

get获取的某条数据  

scan获取的是一个范围内的数据  

> get '命名空间:表名' ,'rowkey'  获取某条数据的cell 


> get '命名空间:表名' ,'rowkey', {COLUMN => '列簇:列名'}   获取某条数据某个列的cell


>get '命名空间:表名', 'rowkey', ['列簇:列名', '列簇:列名']        获取指定列的cell


删除数据

删除命令并不是立即从hdfs上删除数据,删除命令只是对对应的这些cell打上了‘删除’标签

打上‘删除’标签的cell不能直接scanget获取数据

hbase进行大合并机制时才会彻底从hbase中删除

> delete '命名空间:表名','rowkey' ,'列簇:列名'   删除某个cell内的所有的版本  

> deleteall '命名空间:表名', 'rowkey', '列簇:列名'  也看可以删除某条数据的某个cell所有版本


> deleteall '命名空间:表名', 'rowkey'  删除整条数据

> truncate 'xxx'  清空一张表

version 版本

优点:版本就是保存了value值的多个历史记录,客户端可以根据需求获取历史记录  

创建表时默认的版本数是1个 ,多个版本时scanget时默认显示最新版本

>create '命名空间:表名,{NAME=>'列簇名',VERSIONS=>版本个数},{.......}    //创建表格(自定义版本数)

添加数据

>Put 命名空间:表名,rowkey,列簇:列名,cell


> scan '命名空间:表名'  默认显示最新的值  


> scan '命名空间:表名' , { VERSIONS=> n}  指定显示最新的ncell的版本


> get '命名空间:表名',rowkey',{COLUMN =>'列簇:列名', TIMESTAMP=>时间戳}   //获取指定版本的cell的值 

删除表

> disable '命名空间:表名'  先禁用 

> drop '命名空间:表名'  再删除

> count '命名空间:表名'    计算某张表有多少行数据



原创粉丝点击