使用 Hadoop 或 HBase 或 Hive 有什么好处?
据我了解, HBase 避免使用 map-reduce,并且在 HDFS 之上具有面向列的存储。 Hive 是 Hadoop 和 HBase 的类似 sql 的接口。
我也想知道 Hive 与 Pig 的比较。
MapReduce 只是一个 计算框架 。HBase 与它无关。也就是说,您可以通过编写 MapReduce 作业有效地将数据放入 HBase 或从 HBase 获取数据。或者,您可以使用其他 HBase API(例如 Java)编写顺序程序来放置或获取数据。但是我们使用 Hadoop、HBase 等来处理大量数据,所以这没有多大意义。当您的数据太大时,使用普通的顺序程序将非常低效。
回到问题的第一部分,Hadoop 基本上是两件事: 分布式文件系统 (HDFS) + 计算或处理框架 (MapReduce) 。与所有其他 FS 一样,HDFS 也为我们提供存储,但以容错方式具有高吞吐量和较低的数据丢失风险(由于复制)。但是,作为 FS,HDFS 缺乏 随机读写访问 。这就是 HBase 发挥作用的地方。它是一个 分布式、可扩展的大数据存储 ,以 Google 的 BigTable 为蓝本。它将数据存储为键/值对。
来到蜂巢。它在现有的 Hadoop 集群之上为我们提供了数据 仓库设施。 除此之外,它还提供了一个 类似 SQL 的 界面,如果您来自 SQL 背景,它可以让您的工作更轻松。您可以在 Hive 中创建表并在其中存储数据。除此之外,您甚至可以将现有的 HBase 表映射到 Hive 并对其进行操作。
而 Pig 基本上是一种 数据流语言 ,它使我们能够非常轻松快速地处理大量数据。Pig 基本上有两部分:Pig Interpreter 和语言 PigLatin 。您在 PigLatin 中编写 Pig 脚本并使用 Pig 解释器处理它们。Pig 让我们的生活轻松了很多,否则写 MapReduce 总是不容易。事实上,在某些情况下,它真的会成为一种痛苦。
不久前,我写了一篇文章,对 Hadoop 生态系统的不同工具进行了简短的比较。这不是深度比较,而是对这些工具的简短介绍,可以帮助您入门。(只是为了补充我的答案。无意自我推销)
Hive 和 Pig 查询都在后台转换为 MapReduce 作业。
高温高压