我想写一个mapreduce作业来做以下事情:
- 读取HDFS文件。
- 校验读记录是否存在于表中(Hive/Hbase)。
- 如果存在,执行更新操作。如果不存在,则向表(Hive/Hbase)中写入/插入数据。
以上过程每天重复。
问题:
- 是否可以用Hive实现上述逻辑? 如何写MR作业?有实现上述逻辑的例子吗?
做你想做的事的方法不止一种。是的,你可以在蜂巢里做所有的事情。Hive有一些SerDes允许你访问Hbase,所以你也可以在Hive中使用这个。
您的MR作业仅由完成工作的映射器组成;无论如何,既然hive可以做到这一点,我不认为写一个MR作业是一个好主意。也许构建MR作业的快速方法是使用实用程序流,你可以用任何你喜欢的语言编写你的映射器。
如果在这两种情况下,使用hive或一个小的MR作业,你可以把作业放在oozie下,让它每天运行。