zoukankan      html  css  js  c++  java
  • HBase入门(1)

    小伙伴们大家好~

    HBase 简介

    • HBase 是BigTable的开源 java 版本。数据文件存储在 HDFS,是一个分布式、可扩展、支持海量数据存储NoSQL 的数据库
    • 具有高可靠性高性能可扩展列存储实时读写等特点
    • HBase 仅能通过主键(row key)和主键的 range 来检索数据,仅支持单行事务
    • 主要用来存储结构化和半结构化的松散数据
    • Hbase 查询数据功能很简单,不支持 join 等复杂操作,不支持复杂的事务(行级的事务),从技术上来说,HBase 更像是一个「数据存储」而不是「数据库」,因为 HBase 缺少 RDBMS 中的许多特性,例如带类型的列、二级索引以及高级查询语言等
    • Hbase 中支持的数据类型:byte[]
    • 与 Hadoop 一样,Hbase 目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加存储和处理能力,例如,把集群从 10 个节点扩展到 20 个节点,存储能力和处理能力都会加倍
    • HBase 中的一般有这样的特点
      • :一个表可以有上十亿行,上百万列
      • 面向列:面向列(族)的存储和权限控制,列(族)独立检索
      • 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏

    HBase 应用

    • HBase 只要有海量数据存储,而且需要快速的写入以及快速的读取场景,就很适合 HBase
    • 但要记住 NoSQL 的特点:对事务的支持性较弱的
    • 可以用来存储爬虫的数据、点赞/转发、银行转账订单....

    HBase 特点

    1. 强一致性读/写

      • HBase 不是“最终一致的”数据存储

      • 它非常适合于诸如高速计数器聚合等任务

    2. 自动分块

      • HBase 表通过 Region 分布在集群上,随着数据的增长,区域被自动拆分和重新分布
    3. 自动 RegionServer 故障转移

    4. Hadoop/HDFS 集成

      • HBase 支持 HDFS 开箱即用作为其分布式文件系统
    5. MapReduce

      • HBase 通过 MapReduce 支持大规模并行处理,将 HBase 用作源和接收器
    6. Java Client API

      • HBase 支持易于使用的 Java API 进行编程访问
    7. Thrift/REST API

    8. 块缓存和布隆过滤器

      • HBase 支持块 Cache 和 Bloom 过滤器进行大容量查询优化
    9. 运行管理

      • HBase 为业务洞察和 JMX 度量提供内置网页

    HBase 结构

    • 以表形式存在
    • 支持 HDFS 文件系统
    • 使用行键(row key)
    • 原生支持分布式存储、计算引擎
    • 使用行、列族、列、和单元格

    HBase 数据模型

    • HBase 中是有表的概念的
    • 一个表中可以包含多个列族(官方建议使用一个列族,避免 flush 产生大量小文件)
    • 一个列族可以包含很多的列
    • 每一个列对应的单元格(值、timestamp)

    我的公众号:主要记录大数据+金融的学习笔记

    欢迎关注:

    亲力亲为,温故知新!
  • 相关阅读:
    Linux环境下搭建Git仓库
    Linux环境下安装zookeeper
    nginx: [error] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)
    Dart语言特性必备了解!
    Flutter中打造多行列列表GridView组件的使用
    Flutter常用组件(Widget)解析-Scaffold
    Flutter常用组件(Widget)解析-ListView
    Flutter常用组件(Widget)解析-Image
    Flutter常用组件(Widget)解析-Text
    Flutter常用组件(Widget)解析-Container
  • 原文地址:https://www.cnblogs.com/tmftmb/p/15770506.html
Copyright © 2011-2022 走看看