一、HBase伪分布式安装
- 依赖
- hdfs:启动hdfs
- zookeeper:bin/zkServer.sh start
- 下载解压
tar -zxvf hbase-0.98.6-hadoop2-bin.tar.gz -C /opt/modules/
- conf/zoo.cfg
将conf/zoo.cfg 中的dataDir的目录修改为:dataDir=/opt/modules/zookeeper-3.4.5/data
修改配置文件
hbase-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_67 export HBASE_MANAGES_ZK=false
hbase-site.xml
需要创建datas目录<property > <name>hbase.tmp.dir</name> <value>/opt/modules/hbase-0.98.6-hadoop2/datas</value> </property> <property > <name>hbase.rootdir</name> <value>hdfs://hadoop-senior01.ibeifeng.com:8020/hbase</value> </property> <property > <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop-senior01.ibeifeng.com</value> </property>
regionserver
hadoop-senior01.ibeifeng.com
- 替换jar包
删掉lib目录下15个hadoop的jar包,1个zookeeper的jar包,重新上传jar包
- 启动hbase进程
- bin/hbase-daemon.sh start master
- bin/hbase-daemon.sh start regionserver
- http://hadoop-senior01.ibeifeng.com:60010
- region的概念
- 分区,初始的表默认只有一个region
- hbase中的存储按照rowkey存储,rowkey存储在region中
- hbase的命令行
bin/hbase shell
二、HBase的简单使用
- namespace (shell中删除需要按下Ctrl键)
- 创建:create_namespace ‘ns_name’
- 查看:list_namespace
- 描述:describe_namespace ‘student’
- 删除:drop_namespace ‘ns_name’
- table
- 创建:注意:创建表时必须指定表名及列簇
- create ‘t1’, ‘f1’, ‘f2’, ‘f3’ 会直接创建表t1
- create ‘student:stu_info’, ‘info’
- create ‘t1’, ‘f1’, ‘f2’, ‘f3’ 会直接创建表t1
- 查看:list,ns_name:tb_name :唯一确定一张表,除默认namespace
- 描述: 一个大括号表示一个列簇
- desc ‘student:stu_info’
- desc ‘t1’
- desc ‘student:stu_info’
- 删除
- 企业中规范:删除时必须先禁用表,修改表,先禁用-修改-启用
- 先
disable 't2'
—-》后drop 't2'
- 创建:注意:创建表时必须指定表名及列簇
表的DML
增
put 'ns1:t1', 'r1', 'c1', 'value'(ns1:t1'—表名;'r1'—行rowkey;'c1'—列;'value'—列值) put 'student:stu_info','20161204_1001','info:name','laosi' put 'student:stu_info','20161204_1001','info:age','18' put 'student:stu_info','20161204_1001','info:sex','male' put 'student:stu_info','20161204_1002','info:name','laoer' put 'student:stu_info','20161204_1002','info:age','20' put 'student:stu_info','20161204_1003','info:name','laosan' put 'student:stu_info','20161204_1003','info:age','22'
查
- get :查询最快的方式,必须指定rowkey:
get 'student:stu_info','20161204_1001'
- scan:全局扫描,企业中不常用:scan ‘student:stu_info’
scan + 过滤:企业中最常用的方式,速度仅次于get
scan 'student:stu_info',{STARTROW=>'20161204_1002'}
scan 'student:stu_info',{STARTROW=>'20161204_1001',STOPROW=>'20161204_1002'}
STARTROW ,STOPROW包头不包尾
scan 'student:stu_info'{STARTROW=>'20161204_1001',RAW => true, VERSIONS => 10}
- get :查询最快的方式,必须指定rowkey:
删
delete 'student:stu_info','20161204_1003','info:name
’
- 改:hbase中没有改的概念