zoukankan      html  css  js  c++  java
  • Hbase学习记录(1)|伪分布式安装

    概述

    Hbase –Haddop Database 是一个高性能,高可靠性、面向列、可伸缩的分布式存储系统。

    Hbase利用HDFS作为文件存储系统,利用MapReduce来处理Hbase的海量数据,利用Zookeeper作为协调工具。

    是NoSQL的一种。

    数据模型

    image

    表(table),是用来存储管理数据的,是在schema声明的时候定义

    行健(row key),类似于MySQL中的主键,与MySQL不同的是Hbase表天然自带的。

    可以是字符串、整数、二进制串、串行化的结构。

    按照字典顺序由低到高存储在表中的。

    列族(column family,列的集合,在Hbase中列族需要在定义表时指定的,列是在插入记录时动态添加的。Hbase表中的数据,每个列族单独一个文件。

    Cells ,A{row,column,version}元组就是一个Hbase中的一个cell。内容是不可分割的字节数组。

    时间戳(timestamp,列(也称作标签、修饰符)的一个属性。行键和列确定的单元格,可以存储多个数据,每个数据含有时间戳属性,数据具有版本特性。如果不指定时间戳或者版本,默认取最新的数据。

    Version,用一个长整型表示,是当前时间和1970-01-01的时间差,单位毫秒。

    存储的数据都是字节数组。

    存储顺序,表中的数据是按照行健的顺序物理存储的,关系型数据库是按照插入顺序存储的。

    逻辑数据模型

    数据模型的一行:

    表按照行键的“逐字节排序”顺序对行进行有序化处理。

    表内数据非常‘稀疏’,不同的行的列的数完全目可以大不相同。

    可以只对一行上”锁“。

    对行的写操作始终是”原子“的。

    数据模型一列

    列比较用‘族’famliy来定义。

    任意一列形式:”族:标签”,其中,族和标签都可为任意形式的串。

    物理上将同“族”数据存储在一起。

    数据可以用通过时间戳区分版本。

    image

    物理数据模型

    image

    物理模型

    image

    Hbase是适合海量数据(PB)的秒级简单查询的数据库。

    Hbase中的记录,按照行键进行拆分,拆分成一个个的region。

    region存储在region server(单独的物理机器)中的,这样对表的操作转化为对多台region server中。

    region的大小设置参数:hbase.hregion.max.filesize

    体系架构

    Hbase是主从式结构,Hmaster、HregionServer。

    Client包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如region的位置信息。

    Zookeeper

    保证任何时候,急群众只有一个运行的Master

    存储所有Reion的寻址入口。

    实时监控Region Server的状态,将Region Server的上下线信息实时通知给Master

    存储Hbase的schema,包括有哪些table,每个table有哪些column family。

    Master Server

    可以启动多个Hmaster,通过Zookeeper的MasterElection机制保证总有一个Master运行。

    负责Region Server分配region。

    负责region server的负载均衡。

    发现失效的region server并重新分配其上的region。

    image

    Region Server

    负责Master分配给它的region,处理对这些region的IO请求。

    负责切分在运行过程中变得过大的region。

    总结:client访问hbase上数据的过程并不需要master参与,寻址访问zookeeper和region server数据读写访问region server。HregionServer主要负责响应用户I/O请求,向HDFS文件系统读写数据,是Hbase中最核心的模块。

    Hbase初始化表

    Hbase中有两张特殊的Table,-ROOT-和.META.

    .META. 记录了用户表中的Region信息,.META.可以用多个region。

    -ROOT-记录了.META.表中的Region信息,-ROOT-只有一个region。

    Zookeeper中记录了-ROOT-表中的location。

    Client访问用户数据之前首先访问Zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问。

    image

    Hbase伪分布安装

    1、解压、更改目录名

    tar –zxvf hbase-xxx.tar.gz –C /usr/src

    cp –r hbase-xxx/ /usr/local/hbase

    2、配置环境变量,执行立即生效

    vi /etc/profile

    export HBASE_HOME=/usr/local/hbase

    PATH中添加:$HBASE_HOME/bin

    source /etc/profile 立即生效

    3、修改配置文件

    hbase-env.sh

    export /usr/local/jdk

    export HBASE_MANAGES_ZK=true

    hbase-site.xml

    <property>

    <name>hbase.rootdir</name>

    <value>hdfs://h1:9000/hbase</value>

    </property>

    <property>

    <name>hbase.cluster.distributed</name>

    <value>true</value>

    </property>

    <property>

    <name>hbase.zookeeper.quorum</name>

    <value>h1</value>

    </property>

    <property>

    <name>dfs.replication</name>

    <value>1</value>

    </property>

    注意:hbase.rootdir设置的主机名和端口必须与hadoop的dfs.default.name的主机名端口设置一致。

    冗余master时:需要在conf中创建back-masters文件中添加master主机名。

    4、文件regionservers(可选)

    内容为主机名,如 h1

    5、启动

    启动hbase之前,确保hadoop是运行正常的。

    start-hbase.sh

    6、jps检验

    4749 HMaster

    4914 HRegionServer

    4681 HquorumPeer

  • 相关阅读:
    Day015 PAT乙级 1013 数素数
    Day014 PAT乙级 1012 数字分类
    Day013 PAT乙级 1007 素数对猜想
    Day012 PAT乙级 1005 继续(3n+1)猜想
    Day011 PAT乙级 1003 我要通过
    Day010 PAT乙级 1002 写出这个数
    Day009 洛谷 P5707 上学迟到
    Day008 洛谷 P2181 对角线
    Day007 Java异常处理
    Fetch()
  • 原文地址:https://www.cnblogs.com/luguoyuanf/p/3596313.html
Copyright © 2011-2022 走看看