`
jin8000608172
  • 浏览: 136068 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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的表结构和体系结构

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








































  • 大小: 66.2 KB
  • 大小: 126.5 KB
  • 大小: 58.4 KB
  • 大小: 54.7 KB
  • 大小: 63.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics