为什么有猪和蜂巢

时间:2014-06-13 08:30:50

标签: hadoop hive hbase apache-pig hdfs

我了解Hadoop的组件是什么,但我的问题是: 作为最终用户,如何在不担心数据存储的情况下访问Hadoop中的文件?

因此,在使用Pig / Hive命令时,如果数据存储是HDFS还是HBase,我应该担心吗?

谢谢

4 个答案:

答案 0 :(得分:1)

首先,HDFS是一个文件系统而HBase是一个数据库所以是的,你应该考虑到这一点,因为你不能以同样的方式访问它们。

了解这一点,Pig和Hive让您比纯Java更容易访问数据。例如,Hive允许您以接近SQL的方式查询HBase。

以同样的方式,你可以浏览和管理猪的文件,就像在一台标准机器上使用shell一样。

总而言之,您不应该担心 文件与Hadoop一起存储,而是 存储它们(HDFS或HBase)。

答案 1 :(得分:0)

  • HDFS是一个分布式文件系统,就像fxm所说的那样。
  • 几乎所有的hadoop组件都建立在HDFS上。

  • HBase是一个将数据存储在分布式文件系统上的数据库(hdfs,可以是其他fs)。

  • Pig是一种编程语言,用于映射减少作业。

  • hive是一种基于HDFS构建的数据库,它的SQL将生成以映射减少作业。

  • 使用hive或pig的udf,几乎可以访问hdfs上的任何格式数据。

  • 原谅我的英语不好。 :d

答案 2 :(得分:0)

Hadoop 生态系统中的数据需要存储在分布式文件系统中。 HDFS 是最受欢迎的此类文件系统。

但HDFS'价值主张在于提供非常高的顺序读取和写入(扫描)吞吐量。如果你想快速随机读写怎么办?

HBase进来的地方。 HBase 位于HDFS之上并启用快速随机读写

但是您存储数据以询问有关该数据的有趣问题。这就是 MapReduce 的用武之地。您在MapReduce编程范例中表达了您的问题,它可以为您提供所需的答案。但它是低级别的,你需要成为一名程序员。 Spark MapReduce 的替代方案 - 当您需要提出比MapReduce更复杂的问题时,更好地进行了优化。 Hive Pig 是比MapReduce更高级别的抽象。 Hive让您在SQL中提出问题,并将您的SQL转换为MapReduce(或Spark)作业。尽管随着Spark的日益普及,您可以跳过Hive并使用 SparkSQL (Spark的Dataframe / Dataset API),它们也可以解释SQL。

Hive和Pig之间的差异在Alan Gates(猪项目PMC成员和Programming Pig的作者)的优秀post中得到了解释。

答案 3 :(得分:0)

当数据为非结构化且没有架构时,将使用“ Pig”。 推荐使用数据库-HDFS。

Hive用于数据的结构化并具有可用的架构。 推荐使用数据库-Hbase。