(十八)Hbase的认识与安装部署

1、Hbase的认识

1.1.什么是hbase

HBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。

       HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。HBASE是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable利用GFS作为其文件存储系统,HBASE利用Hadoop HDFS作为其文件存储系统;Google运行MAPREDUCE来处理Bigtable中的海量数据,HBASE同样利用Hadoop MapReduce来处理HBASE中的海量数据;Google Bigtable利用Chubby作为协同服务,HBASE利用Zookeeper作为对应。

1.2. 与传统数据库的对比

1、传统数据库遇到的问题:

1)数据量很大的时候无法存储

2)没有很好的备份机制

3)数据达到一定数量开始缓慢,很大的话基本无法支撑

 2、HBASE优势:

1)线性扩展,随着数据量增多可以通过节点扩展进行支撑

2)数据存储在hdfs上,备份机制健全

3)通过zookeeper协调查找数据,访问速度块。

1.3. hbase集群中的角色

1、一个或者多个主节点,Hmaster

2、多个从节点,HregionServer

2、Hbase原理

2.1. 体系图

 

2.1.1. 写流程

  1. client向hregionserver发送写请求。
  2. hregionserver将数据写到hlog(write ahead log)。为了数据的持久化和恢复。
  3. hregionserver将数据写到内存(memstore)
  4. 反馈client写成功。

2.1.2. 数据flush过程

  1. 当memstore数据达到阈值(默认是64M),将数据刷到硬盘,将内存中的数据删除,同时删除Hlog中的历史数据。
  2. 并将数据存储到hdfs中。
  3. 在hlog中做标记点。

2.1.3. 数据合并过程

  1. 当数据块达到4块,hmaster将数据块加载到本地,进行合并
  2. 当合并的数据超过256M,进行拆分,将拆分后的region分配给不同的hregionserver管理
  3. 当hregionser宕机后,将hregionserver上的hlog拆分,然后分配给不同的hregionserver加载,修改.META.
  4. 注意:hlog会同步到hdfs

2.1.4. hbase的读流程

  1. 通过zookeeper和-ROOT- .META.表定位hregionserver。
  2. 数据从内存和硬盘合并后返回给client
  3. 数据块会缓存

2.1.5. hmaster的职责

1、管理用户对Table的增、删、改、查操作;

2、记录region在哪台Hregion server上

3、在Region Split后,负责新Region的分配;

4、新机器加入时,管理HRegion Server的负载均衡,调整Region分布

5、在HRegion Server宕机后,负责失效HRegion Server 上的Regions迁移。

2.1.6. hregionserver的职责

HRegion Server主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBASE中最核心的模块。

HRegion Server管理了很多table的分区,也就是region。

2.1.7. client职责

Client

HBASE Client使用HBASE的RPC机制与HMaster和RegionServer进行通信

管理类操作:Client与HMaster进行RPC;

数据读写类操作:Client与HRegionServer进行RPC。

3、Hbase的安装部署

前言:分布式安装hbase前,请首先安装配置hadoop和Zookeeper

3.1.下载Hbase

运行环境是在Ubuntu14系统下,HBase版本为hbase-1.1.2

下载地址:http://archive.apache.org/dist/hbase/

3.2.安装Hbase

3.2.1 解压安装包hbase-1.1.2-bin.tar.gz至路径 /usr/local,命令如下:

sudo tar -zxf ~/hbase-1.1.2-bin.tar.gz -C /usr/local

3.2.2 将解压的文件名hbase-1.1.2改为hbase,以方便使用,命令如下:

sudo mv /usr/local/hbase-1.1.2 /usr/local/hbase

3.2.3 配置环境变量,将hbase下的bin目录添加到path中:

vi ~/.bashrc

如果没有引入过PATH请在~/.bashrc文件尾行添加如下内容:

export PATH=$PATH:/usr/local/hbase/bin

如果已经引入过PATH请在export PATH这行追加/usr/local/hbase/bin,这里的“:”是分隔符,如图:

执行source命令使上述配置在当前终端立即生效:

source ~/.bashrc

3.2.4查看HBase版本,确定hbase安装成功,命令如下:

/usr/local/hbase/bin/hbase version

看到以上输出消息表示HBase已经安装成功

4、修改Hbase配置文件

cd /usr/local/hbase/conf/   #进入文件夹

4.1 创建data/tmp

mkdir -p data/tmp
pwd                     #/usr/local/hbase/data/tmp

4.2 配置hbase-env.sh

27行附近,添加自己的JAVA_HOME

124行附近改为false

4.3 再配置hbase-site.xml 

<configuration>
  <property>
    <name>hbase.tmp.dir</name>
    <value>/usr/local/hbase/data/tmp</value>
  </property>
    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:9000/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>master,slave1</value>
  </property>
</configuration>

4.4 配置regionservers 

列出了你希望运行的全部 HRegionServer,一行写一个host (就像Hadoop里面的 slaves 一样). 列在这里的server会随着集群的启动而启动,集群的停止而停止.

将localhost改成主机名(我的是master)

5、启动Hbase

start-hbase.sh

jps后看到增加了HRrgionServer和HMaster两个进程

master:16010可以进入Hbase的web界面(注意这里的端口号1版本前是60010)

附录Hbase官网(中):http://abloz.com/hbase/book.html#standalone_dist

6、Hbase相关命令

6.1. 命令的进退

6.1.1、hbase提供了一个shell的终端给用户交互

#$HBASE_HOME/bin/hbase shell 

6.1.2、如果退出执行quit命令

#$HBASE_HOME/bin/hbase shell

… 

>quit

6.2. 命令

名称命令表达式
创建表create ‘表名’, ‘列族名1′,’列族名2′,’列族名N’
查看所有表list
描述表describe  ‘表名’
判断表存在exists  ‘表名’
判断是否禁用启用表is_enabled ‘表名’is_disabled ‘表名’
添加记录      put  ‘表名’, ‘rowKey’, ‘列族 : 列‘  ,  ‘值’
查看记录rowkey下的所有数据get  ‘表名’ , ‘rowKey’
查看表中的记录总数count  ‘表名’
获取某个列族get ‘表名’,’rowkey’,’列族’
获取某个列族的某个列get ‘表名’,’rowkey’,’列族:列’
删除记录delete  ‘表名’ ,‘行名’ , ‘列族:列’
删除整行deleteall ‘表名‘,’rowkey
删除一张表先要屏蔽该表,才能对该表进行删除第一步 disable ‘表名’ ,第二步  drop ‘表名’
清空表truncate 表名
查看所有记录scan “表名”  
查看某个表某个列中所有数据scan “表名” , {COLUMNS=>’列族名:列名’}
更新记录就是重写一遍,进行覆盖,hbase没有修改,都是追加
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分布式数据库 分布式数据库 分布式数据库 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 网上的 网上的 软件系统, 软件系统, 软件系统, 具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值