【问题标题】:Purpose of using HBase in Hadoop instead of Hive [duplicate]在 Hadoop 中使用 HBase 而不是 Hive [重复]
【发布时间】:2016-12-29 11:09:58
【问题描述】:
在我的项目中,我们使用Hadoop 2、Spark、Scala。 Scala 是编程语言,Spark 在这里用于分析。我们同时使用Hive 和HBase。我可以使用Hive 访问HDFS 的所有详细信息,例如文件等。
但我的困惑是 -
- 当我可以使用
Hive 执行所有作业时,为什么需要HBase 来存储数据。这不是开销吗?
-
HIVE和HBase的功能是什么?
-
如果我们只使用 Hive,那应该是什么问题?
谁能告诉我。
【问题讨论】:
标签:
hadoop
hive
hbase
hdfs
【解决方案1】:
- 当我能够使用
Hive 执行所有作业时,为什么需要HBASE 来存储数据。这不是开销吗?
-
Hive和Hbase的功能是什么
HBase 是 No Sql 数据库,将数据存储在键值对中。 Hive 已与 Hbase.Hbase HIve Integration 集成
优势:- Hive 查询超过 HBase。想想连接和一种对Hbase 数据进行聚合和简单操作的简单方法。
Hbase 为您提供可扩展的存储基础架构,可让数据保持在线。 StumbleUpon 将Hbase 用于他们的实时网站。 Hive 不是实时查询引擎,因此它的数据存储不能用于类似目的。 Hive 优于 HBase 为您带来两全其美的好处。
- 如果我们只使用 Hive,那应该是什么问题?
如果我们使用Hive 没有问题。但是在项目中,我们必须考虑很多场景。
- 性能
- 存储
-
所用技术的稳定性
-
兼容性(Hadoop 中的大多数工具都可以轻松访问 Hive 仓库)
【解决方案2】:
当我能够使用 Hive 执行所有工作时,为什么 HBase 是
需要存储数据。这不是开销吗?
我不能说它是否是开销。但 HBase 会实时响应请求,因为它的数据库在 Hive 上运行 MapReduce/Spark/Tez 引擎上的作业。
Hive 和 HBase 的功能是什么?
蜂巢:
这是一种类似 SQL 的语言,可以翻译成 MapReduce/Spark/Tez 作业。它只在 Hadoop 上运行批处理。 更多信息请查看how Hive queries run on MapReduce engine
HBase:
它是运行在 HDFS/S3(在 AWS 上)之上的键/值存储数据库。它对请求进行实时操作。
如果我们只使用 Hive,那应该是什么问题?
如前所述,如果查询需要实时处理,那么 HBase 是 Hive 的选择。