HBase学习笔记

NoSQL数据库之:HBase

一、NoSQL的基础、常见的NoSQL数据库
1、什么是NoSQL数据库?
(*)基于Key-Value来保存数据
关系型数据库:基于关系模型 ---> 二维表

(*)NoSQL不支持事务

2、常见的NoSQL数据库
(1)HBase:基于HDFS、面向列的NoSQL数据库
表 ---> 目录
数据---> 文件

(2)Redis:基于内存的一个NoSQL数据库,支持持久化(RDB、AOF)
前身:MemCached(不支持持久化)

(3)MongoDB:文档(BSON文档,就是JSON的二进制)型的NoSQL
举例:设计数据库,保存电影的信息

(4)Cassandra:面向列的NoSQL数据库



二、HBase的表结构和体系结构
[img]http://dl2.iteye.com/upload/attachment/0129/7394/8d3ac869-ea71-3e70-b203-7d1127851db5.png[/img]
1、HBase的表结构:Google的三篇论文的时候:BigTable 大表
2、HBase在ZK中保存数据
(*)配置信息、HBase集群结构信息
(*)表的元信息
(*)实现HBase的HA:high avaibility 高可用性

三、搭建HBase环境

(1)解压: tar -zxvf hbase-1.3.1-bin.tar.gz -C ~/training/
(2)设置环境变量 vi ~/.bash_profile
HBASE_HOME=/root/training/hbase-1.3.1
export HBASE_HOME

PATH=$HBASE_HOME/bin:$PATH
export PATH

1、本地模式: 不需要HDFS、直接把数据存在操作系统
hbase-env.sh
28 export JAVA_HOME=/root/training/jdk1.8.0_144

hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>file:///root/training/hbase-1.3.1/data</value>
</property>

2、伪分布模式
hbase-env.sh
129 export HBASE_MANAGES_ZK=true

hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.157.11:9000/hbase</value>
</property>

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.157.11</value>
</property>

<property>
<name>dfs.replication</name>
<value>1</value>
</property>

regionservers
192.168.157.11


3、全分布模式
hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.157.12:9000/hbase</value>
</property>

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.157.12</value>
</property>

<property>
<name>dfs.replication</name>
<value>2</value>
</property>

<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
</property>

regionservers
192.168.157.13
192.168.157.14

scp -r hbase-1.3.1/ root@bigdata13:/root/training
scp -r hbase-1.3.1/ root@bigdata14:/root/training

4、HBase的HA
不需要额外配置,只用在其中一个从节点上单点启动Hmaster
bigdata13:hbase-daemon.sh start master

四、HBase在ZK中保存的数据和HA

五、操作HBase
1、Web Console网页:端口:16010 (早期的版本中:60010)

2、命令行
(*)创建表: create 'students','info','grade'
list
查看表结构
desc 'students'
describe 'students'

问题:在Oracle数据库中,desc emp和describe emp有区别吗?
desc 是SQL*PLUS语句,可以缩写
describe 是SQL语句

SQL*PLUS语句和SQL语句有什么区别?

(*)插入数据:put
(*)查询数据:
scan 相当于:select * from students

get 相当于 select * from students where rowkey=??

(*)清空表中的数据
问题:在Oracle数据库,清空表的数据有几种方式? delete和truncate语句
delete和truncate语句什么区别?
1、delete是DML(可以回滚),truncate是DDL(不可以回滚)
2、delete会产生碎片;truncate不会
3、delete不会释放空间;truncate会
4、delete可以闪回(flashback),truncate不可以闪回


truncate 'students' -----> 本质: 先删除表,再重建

日志:
Truncating 'students' table (it may take a while):
- Disabling table...
- Truncating table...
0 row(s) in 4.0840 seconds

旧版本HBase
Truncating 'students' table (it may take a while):
- Disabling table...
- Dropping table...
- Creating table ...

(*)删除表:disable 'students'
drop 'students'

3、Java API(HBase)


六、数据保存的过程(一定注意:Region分裂)

七、HBase的过滤器(Java程序)

八、HBase上的MapReduce


六、数据保存的过程(一定注意:Region分裂)

七、HBase的过滤器(Java程序)
1、准备实验的数据
2、列值过滤器
列名前缀过滤器
多个列名前缀过滤器
行键过滤器

3、组合过滤器

八、HBase上的MapReduce
1、建立表
create 'word','content'
put 'word','1','content:info','I love Beijing'
put 'word','2','content:info','I love China'
put 'word','3','content:info','Beijing is the capital of China'

2、结果:create 'stat','content'

注意:export HADOOP_CLASSPATH=$HBASE_HOME/lib/*:$CLASSPATH
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值