为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下Hadoop 用Hive还是HBase?

请问一下Hadoop 用Hive还是HBase?

慕哥6287543 2019-10-21 14:10:41
Hadoop 用Hive还是HBase
查看完整描述

4 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

这个要根据自己处理数据的方式来选择。
1、Hive是支持SQL语句的,执行会调用mapreduce,所以延迟比较高;
2、HBase是面向列的分布式数据库,使用集群环境的内存做处理,效率会比hive要高,但是不支持sql语句
Hadoop开发和运行处理大规模数据,需要用hbase做数据库,但由于hbase没有类sql查询方式,所以操作和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面的 hql查询,hive也即做数据仓库。

查看完整回答
反对 回复 2019-10-26
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

你先明白数据仓库的作用--存储历史数据-进而对数据进行分析,只提供查询-不提供修改

1。Hive 的目标是做成数据仓库,所以它提供了SQL,提供了文件-表的映射关系,又由于Hive基于HDFS,所以不提供Update,因为HDFS本身就不支持。
2.HBase 是NoSQL数据库-所以不要跟传统混淆并谈-NoSQL 提供的是另一种思路来满足高性能的需求,而这些是传统数据库的短板,与传统数据库的理念不一样
3.load data 这个可以自己去查。Hbase要使用自己的API
4.是的。
5.这句话不对。
6.映射就是结构对应-如文件每一行的第一个字段-映射到Hive表的第一个字段
类似Hibernate的语法解析。
Hive本身实现了一套语法结构也就是操作符。如扫描文件等,最终记本都会转换成MapReduce来运行

查看完整回答
反对 回复 2019-10-26
?
呼如林

TA贡献1798条经验 获得超3个赞

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,多级索引,表关系复杂的应用场景。



查看完整回答
反对 回复 2019-10-26
  • 4 回答
  • 0 关注
  • 1876 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信