1、HBase 了解
Hbase 是 Hadoop database 的简称,也就是基于 Hadoop 数据库,是一种 NoSQL 数据库,主要适用于海量明细数据(十亿、百亿)的随机实时 查询,如日志明细、交易清单、轨迹行为等。
HBase 表是物理表,适合存放非结构化的数据。提供一个超大的内存 hash 表,搜索引擎通过它来存储索引,方便查询操作。
HBase 基于 Hadoop 的 HDFS 存储, zookeeper 进行管理,处理数据是基于 列 的而不是基于行的模式,适合海量数据的随机访问。
HBase 是近实时系统,支持实时查询,支持增删改查。
2、Hive 了解
Hive 是基于 Hadoop 的一个 数据仓库 工具,严格来说,不是数据库,主要是让开发人员能够通过 SQL 来计算和处理 HDFS 上的结构化数据,适用于离线的批量数据计算。可以将结构化的数据文件映射为一张数据库表,并提供简单的 sql 查询功能。
Hive 中的表纯逻辑。
Hive 本身不存储和计算数据,它完全依赖于 HDFS 和 MapReduce,Hive 需要用到 HDFS 存储文件,需要用到 MapReduce 计算框架,而 MapReduce 处理数据是基于行的模式。
Hive 使用 Hadoop 来分析处理数据,而 Hadoop 系统是批处理系统,因此不能保证处理的低迟延问题,而且 只支持导入和查询。
3、现实使用
Hbase 和 Hive 在大数据架构中处在不同位置,Hbase 主要解决 实时数据查询 问题,Hive 主要解决 数据处理 和 计算问题,两者是协作关系,一般是配合使用。
- 通过 ETL 工具将数据源抽取到 HDFS 存储;
- 通过 Hive 清洗、处理和计算原始数据;
- Hive 清洗处理后的结果,如果是面向海量数据随机查询场景的可存入 HBase
- 数据应用从 HBase 查询数据;
|