Mapreduce, HDFS input, Hive table output
我想编写一个 mapreduce 作业来执行以下操作:
读取 HDFS 文件。
验证表(Hive/Hbase)中已存在读取记录。
如果存在,则执行更新操作。如果不存在,则将数据写入/插入表(Hive/Hbase)。
上述过程将每天重复。
问题:
是否可以使用 Hive 实现上述逻辑?
怎样才能写出MR作业?有什么例子可以实现上述逻辑吗?
有不止一种方法可以做你想做的事。
是的,您可以在 hive 中完成所有操作。
Hive 有一些允许您访问 Hbase 的 SerDes,因此您也可以从 hive 使用它。
您的 MR 工作仅由执行该工作的映射器组成;不管怎样,既然hive可以做到,我觉得写个MR工作不是个好主意。
也许构建 MR 作业的快速方法是使用实??用程序流,您可以使用任何您喜欢的语言编写映射器。
如果这两种情况,使用 hive 或小型 MR 作业,您可以将作业置于 oozie 下并使其每天运行。
- 非常感谢您的投入。在将数据插入 Hive/Hbase 表之前,我需要执行一些数据操作。是否可以在 Hive 中执行数据操作?实用程序流是什么意思?
-
有一个 jar 可以使用您的自定义映射器和减速器扫描您的文件。这可能是开始编写简单的 map reducer 作业的好方法。谷歌的 hadoop 流媒体
-
谢谢你。我会在谷歌上搜索。在将数据插入 Hive/Hbase 表之前,我需要执行一些数据操作。是否可以在 Hive 中执行数据操作?对这个问题有什么建议吗?
-
使用 hadoop 流,您可以解决许多简单的问题,而无需使用 java 编写 MapReduce 作业。