HBase数据库安装之shell命令详解

关系型数据库
RDBMS:具有“表”模型结构,表与表之间存在着关系
事物:一致性
  隔离性
  原子性
  持久性

MySQL
开源:免费
支持标准SQL语句
数据量:10W

Oarcle:
收费
数据量:海量

SqlServer
微软,收费
提供一个图形界面的管理平台

特点:都支持结构化查询语言

非关系型数据库
HBase、MongoDB、NoSQL
1、不使用SQL语句
2、使用高效
使用情况:数据量特别大的时候,
论行计算:上亿行,上百亿行
论数据单位记:上TB级别

缺点:
1.无事物性



二、基本的HBase概念
比较HBase与关系型数据库
数据类型
HBase只有字符串类型
数据操作
HBase没有修改操作,表和表之间相互分离
存储模式
HBase基于列存储,关系型数据库基于行存储
数据维护
HBase的更新实际是插入新的数据
可伸缩性
HBase很容易靠增加硬件满足系统需要

基本术语
表:不存储NULL值的稀疏表
行键:行的主键,标识一行数据
列族:表的数据列,在创建表时必须被定义
列键:唯一标识列族中的一个成员,格式为:其中qualifier可取空值
存储单元格:存储列键值的单元
时间戳:插入单元格时的时间,默认作为单元格的版本号



列族:
Hbase表中的每个列,都归属于某个列族
列族是表的一部分(而列不是),列族必须在使用之前定义
列名都以列族作为前缀。
如courses:english ,    courses:math
都属于courses这个列族





hbase官网:
hbase.apache.org

三、Zookeeper分布式协作框架
1、源自于Google三大论文之一的BigTable协作框架
2、官网:http://zookeeper.apache.org/
3、同步服务(同步集群),辅助功能
4、zookeeper-》Java语言编写的框架-》提供JavaAPI

5、安装配置
5.1:上传下载好的压缩包

5.2:解压压缩包到指定位置
tar -zxvf zookeeper-3.4.6.tar.gz -C /opt/modules/

5.3:配置zoo.cfg文件
-->切换到zookeeper的家目录下的配置文件目录中
/opt/modules/zookeeper-3.4.6/conf

--》重命名配置文件
mv zoo_sample.cfg zoo.cfg

5.4:编辑文件zoo.cfg
--》在zookeeper家目录下创建一个目录,用来存储zookeeper的数据
mkdir mydata
--》修改第12行dataDir
dataDir=/opt/modules/zookeeper-3.4.6/mydata

5.5:启动测试
--》启动顺序:先启动HDFS 再启动zookeeper
bin/zkServer.sh start
--》启动后的节点名称
16795 QuorumPeerMain

--》查看zookeeper运行状态
bin/zkServer.sh status

5.6:关闭节点
--》bin/zkServer.sh stop



四、HBase配置
1.上传

2.解压到指定位置
tar -zxf hbase-1.0.2-bin.tar.gz -C /opt/modules/

3.配置conf/hbase-env.sh
--》第27行去掉注释,写入JDK安装路径
export JAVA_HOME=/opt/modules/jdk1.7.0_67
--》124行 去掉注释,将true修改为false 。 不使用hbase自带zookeeper。
export HBASE_MANAGES_ZK=false



4.配置conf/hbase-site.xml
--》指定NameNode所在机器,以及交互端口号
 
    hbase.rootdir
    hdfs://bdqn.com.cn:8020/hbase
 

--》是否是分布式的
 
    hbase.cluster.distributed
    true
 

--》指定zookeeper节点所在位置
 
    hbase.zookeeper.quorum
    bdqn.com.cn
 


5.配置conf/regionservers
--》指定从节点所在机器位置
bdqn.com.cn

6.启动hbase
--》全部启动命令
bin/start-hbase.sh 
注意:此命令启动会有问题,我们通过查看log日志发现,
HRegionServer节点和主节点HMaster 共同占用同一个端口号

--》所以启动方式改为单独启动方式:
bin/hbase-daemon.sh start master
bin/local-regionservers.sh start 1

--》全部关闭方式:
bin/stop-hbase.sh 

--》单独关闭方式:
bin/hbase-daemon.sh stop master
bin/hbase-daemon.sh stop regionserver

通过web页面访问HMaster节点
bdqn.com.cn:16010

7.进入hbase shell 命令行
bin/hbase shell

8.简单操作
list 列举有哪些表
create '表名','列族……'   创建表
退格需要按住ctrl键
退出使用: exit



五、HBase shell 命令

创建表:
create '表名称','列族名称1','列名族称2'
create 'scores','grade','course'

查看所有表:list

删除表
disable '表名'
drop '表名'
注意:删除表必须先让表置为不可用状态,然后才能删除
示例:
disable 'scores'
drop 'scores'

查看指定表的列族详细信息:describe
describe '表名'
describe 'scores'

列族参数
NAME:列族名称
VERSIONS:最大版本数量
MIN_VERSIONS:最小版本数量
BLOCKSIZE:数据块大小
……
完整创建表的语法:
create 'scores01',{NAME=>'grade',VERSIONS=>5},{NAME=>'course',VERSIONS=>5}

添加数据:put
put '表名','行健','列族:列键','值'
put 'scores','tom','grade:','1'
put 'scores','tom','course:art','80'
put 'scores','tom','course:math','89'
put 'scores','jack','grade:','2'
put 'scores','jack','course:art','87'
put 'scores','jack','course:math','57'

scan 扫描全表
scan '表名称',{COLUMNS=>['列族名1','列族名2',……],参数名=>参数值…}

示例:
scan 'scores' 
scan 'scores',{COLUMNS=>'course'} 
--》简写 scan 'scores','course'
scan 'scores',{COLUMN=>'course:math',LIMIT=>1}

LIMIT:显示几条数据

获取数据:get
获取行的所有单元或者某个指定的单元
get '表名称','行键',{COLUMN=>['列键1','列键2'…],参数名=>参数值…}

get 'scores','jack' 
get 'scores','jack',{COLUMNS=>'course'}
get 'scores','jack',{COLUMN=>'course:math'}
--》简写
get 'scores','jack','course:math','grade:'

删除数据
delete:删除一个单元
deleteall:删除一行
语法:
delete '表名称','行键','列键'
deleteall '表名称','行键'
--》删除tom的数学成绩
delete 'scores','tom','course:math'

--》删除tom所有的信息
deleteall 'scores','tom'

修改表:alter
增加或修改表的列族,列族名存在则修改否则增加

语法:
alter '表名称',参数名=>参数值,...
alter '表名称',{参数名=>参数值,...}, {参数名=>参数值,...}…
示例:
alter 'scores',NAME=>'course',VERSIONS=>'5'
alter 'scores',{NAME=>'grade',VERSIONS=>'5'},{NAME=>'course',VERSIONS=>'5'}


你可能感兴趣的:(Hadoop)