带有MapReduce选项的HBase

时间:2014-05-31 08:43:20

标签: hive hbase

我是Hadoop的新用户,我最近安装了HiveHBase

我在Hive中创建了几个表,查询以MapReduce方式运行。另外,当我说'得到''在HBase中,它没有在MapReduce中运行,这就是为什么我认为它具有高延迟。

我在这里很少有人怀疑。

  1. 如果我有需要处理实时流数据的应用程序,我应该使用什么?HiveHBase

  2. 我可以使用HBase选项安装MapReduce,以便get中的HBase命令以MapReduce方式运行

    < / LI>

    提前致谢

2 个答案:

答案 0 :(得分:1)

HBase是数据库,它没有选择为其操作运行mapreduce,如get,scan,put ......

如果您想以mapreduce样式处理HBase中的数据您需要创建自定义地图缩减作业,或使用其他分析工具,如Hive,Pig,......

Hive是建立在Hadoop mapreduce之上的数据仓库平台。它可以读取来自许多不同来源的数据,如HDFS文件,S3文件,HBase等......

希望这对你有用。

答案 1 :(得分:0)

  1. 如果我有一个需要处理实时流数据的应用程序,我应该使用什么 - Hive还是HBase?

    Hive最适合批量处理的需求。我永远不会喜欢它以满足我的实时需求。正如您所注意到的,当您发出Hive查询时,它首先会转换为MapReduce作业,然后为您提供结果。这涉及一些延迟。

    但真正的问题是如何处理实时流数据。 HBase和Hive都是允许我们在现有Hadoop集群之上存储数据的系统。当然,您可以在稍后阶段使用HBase API / Hive查询编写程序来处理数据。但是那不会是你的流媒体数据的实时处理,恕我直言。

    当您说流数据处理时,它意味着您打算随时处理您的数据,而不必存储它(尽管您可以同时存储它)。像 STORM 这样的工具就是为此而设的。看看吧。

  2. 我可以使用MapReduce选项安装HBase,以便HBase中的get命令以MapReduce方式运行吗?

    HBase和MapReduce都是两回事。 获取扫描等操作是特定于HBase的,它们不能用作MapReduce作业(与Hive查询不同)。但是你绝对可以使用HBase和MapReduce从/向你的HBase表获取/放入数据。有关详细信息,请参阅 this

  3. HTH