【问题标题】:Mapreduce, HDFS input, Hive table outputMapreduce、HDFS 输入、Hive 表输出
【发布时间】:2016-10-03 20:26:44
【问题描述】:

我想编写一个 mapreduce 作业来执行以下操作:

  1. 读取 HDFS 文件。
  2. 验证表(Hive/Hbase)中已存在读取记录。
  3. 如果存在,则执行更新操作。如果不存在,则将数据写入/插入表(Hive/Hbase)。

上述过程将每天重复。

问题:

  1. 是否可以使用 Hive 实现上述逻辑?
  2. 如何写MR作业?有没有实现上述逻辑的例子?

【问题讨论】:

    标签: mapreduce hive hdfs


    【解决方案1】:

    有很多方法可以做你想做的事。 是的,您可以在 hive 中完成所有操作。 Hive 有一些允许您访问 Hbase 的 SerDes,因此您也可以从 hive 使用它。

    您的 MR 工作仅由执行该工作的映射器组成;不管怎样,既然hive可以做到,我觉得写个MR工作不是个好主意。 也许构建您的 MR 工作的快速方法是使用实​​用程序流,您可以使用任何您喜欢的语言编写映射器。

    如果这两种情况,使用 hive 或小型 MR 作业,您可以将作业置于 oozie 下并使其每天运行。

    【讨论】:

    • 非常感谢您的投入。在将数据插入 Hive/Hbase 表之前,我需要执行一些数据操作。是否可以在 Hive 中执行数据操作?实用程序流是什么意思?
    • 有一个 jar 可以使用您的自定义映射器和减速器扫描您的文件。这可能是开始编写简单的 map reducer 作业的好方法。 Google for hadoop 流媒体
    • 谢谢。我会在谷歌上搜索。在将数据插入 Hive/Hbase 表之前,我需要执行一些数据操作。是否可以在 Hive 中执行数据操作?对这个问题有什么建议吗?
    • hadoop streaming 使用它可以解决很多简单的问题,而无需使用 java 编写 MapReduce 作业。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    相关资源
    最近更新 更多