用户登录
用户注册

分享至

hive mapreduce hbase

  • 作者: 纯冰柠檬茶
  • 来源: 51数据库
  • 2020-10-03
HBase是个基于HDFS的数据库。Hive是用SQL替代写MR的编程框架,做Hadoop上会把用户提交的SQL语句做语法分析,执行计划等一堆乱七八糟的事后变成MR job提交去跑,返回结果给用户。不然每次都写MR很麻烦的,有这个写个SQL就可以拿到等效的结果,很适合运营童鞋用。当然Hive也有HBase的Connector,用这个Connnector后可以写SQL查询HBase的数据而不是HDFS,不过一般不这么搞。像用SQL on HBase的话,可以用下Phoenix,新手第一次用的感觉会觉得很像是MySQL



  1. hive中的表是纯逻辑表,就只是表的定义等,即表的元数据。hive本身不存储数据,它完全依赖hdfs和mapreduce。这样就可以将结构化的数据文件映射为为一张数据库表,并提供完整的sql查询功能,并将sql语句最终转换为mapreduce任务进行运行。 而hbase表是物理表,适合存放非结构化的数据。
2. hive是基于mapreduce来处理数据,而mapreduce处理数据是基于行的模式;hbase处理数据是基于列的而不是基于行的模式,适合海量数据的随机访问。
3. hbase的表是疏松的存储的,因此用户可以给行定义各种不同的列;而hive表是稠密型,即定义多少列,每一行有存储固定列数的数据。
4. hive使用hadoop来分析处理数据,而hadoop系统是批处理系统,因此不能保证处理的低迟延问题;而hbase是近实时系统,支持实时查询。
5. hive不提供row-level的更新,它适用于大量append-only数据集(如日志)的批任务处理。而基于hbase的查询,支持和row-level的更新。
6. hive提供完整的sql实现,通常被用来做一些基于历史数据的挖掘、分析。而hbase不适用与有join,多级索引,表关系复杂的应用场景。
软件
前端设计
程序设计
Java相关