zoukankan      html  css  js  c++  java
  • HBase

    一、

    1. HBase - Hadoop Database是一个高可靠性(数据存在HDFS上,HDFS本身高可靠;依赖zookeeper,服务不会停)、高性能(基于Row Key,大数据量情况下速度快)、面向列(一个个单元格)、可伸缩(集群动态扩展节点)、实时读写的分布式数据库。

    2. 利用HDFS作为文件存储系统、MapReduce处理海量数据、利用Zookeeper提供分布式协同服务。

    3. 与常用的数据库存储结构化数据不一样,HBase主要用来存储非结构化的喝半结构化的松散的数据。

    4. Row Key 为主键(只能存储64k字节数据,越短越好),对应有多个列族Column Family,一个列族下有多个列名。一次数据操作对应一个时间戳,HBase会自动生成时间戳(推荐)、也可人为生成。

    5. 列族(CF)需先在建表时声明(权限控制、存储以及调优都在列族层面,列族最好控制在3个以内--列族越多性能越差),列名需以列族作为前缀,新的列可以随后按需动态添加。

    6. HLog文件是一个普通的hadoop序列文件--HBase数据恢复的日志文件。

    7. HBase每一个cell存储单元对同一份数据有多个版本,根据唯一的时间戳来区分每个版本之间的差异,不同版本按时间倒序排序,最新的版本排在最前面。(时间戳的类型为64位整型)

    8. 单元格的内容是未解析的字节数组。由{row key,column(=<family>+<qualifier>),version}(主键+列族+列名+版本号--时间戳) 确定目标单元,cell中的数据是没有类型的,全部是字节码的形式存储。

    二、HBase体系架构

    Client请求到zookeeper(保证集群内只有一个HMaster),zookeeper转给HMaster,HMaster向RegionServer分配Region(一个Region就是一张表的部分或者全部数据,一个Region内有一个HLog文件、可以有几个Store。一个Store对应一个列族,一个Store内有一个MemStore。数据先写入MemStore,当存满之后。就写入一个文件内。HBase叫StoreFile、Hadoop叫HFile,指的是同一个文件),数据存储到HDFS上。

    Zookeeper作用:

    1. 保证集群中只有一个HMaster。

    2. 储存所有region的位置信息。

    3. 监控RegionServer的上线、下线,并通知给HMaster。

    4. 储存HBase的schema和table元数据--所以说HMaster上不储存任何元数据。

    Master作用:

    1. 为RegionServer分配region。

    2. HMaster起到一个负载均衡的作用,发现失效的RegionServer后将重新分配其上的region。

    3. 管理用户对table的增删改操作。

    RegionServer作用:

    1. 维护region,处理对region的IO请求。

    2. 切分在运行过程中不断增大的region。

    三、

    Put-插入数据  Get-查询数据

    HBase存储的数据格式为key-value形式,业务信息存储在Key内-- K: Row Key/列族:列名/时间戳/方法(Put...)/长度/mvcc标识  V: 值。

    搭建HBase集群之前,需要先确保hadoop集群,zookeeper集群运行正常。

    Java操作HBase时需指定编码格式,Hbase有自己的默认编码。(HBase的版本1.0.0之前与之后的API有一定区别,需注意)

    Scan && Filter

    HBase不支持sql,所以可以安装phoenix扩展sql功能。Squirrel SQL Client

    转载于:https://www.cnblogs.com/tianhb/p/6434876.html

  • 相关阅读:
    docker创建nginx+php-fpm+mysql环境(一分钟搭建lnmp)
    dcoker搭建wordpress
    docker搭建mysql
    nginx负载均衡精简配置实例
    docker配置阿里云镜像加速
    Centos7 ssh配置RSA证书登录
    Dockerfile centos7_php5.6.36
    Dockerfile cnetos7_nginx1.15.10
    Dockerfile centos7_tomcat7.0.64_jdk7u80
    centos7 安装docker
  • 原文地址:https://www.cnblogs.com/twodog/p/12141208.html
Copyright © 2011-2022 走看看