【发布时间】:2014-06-28 15:40:28
【问题描述】:
我正在尝试编写一个 mapreduce 作业,它将模拟 sql 查询的 between 运算符
我的情况是我有 2 个 hdfs 文件:
HDFS 文件 1 包含开始日期、结束日期和更改日期:
Start Date | End Date | Changed Date
dd/MM/yyyy | dd/MM/yyyy | dd/MM/yyyy
dd/MM/yyyy | dd/MM/yyyy | dd/MM/yyyy
dd/MM/yyyy | dd/MM/yyyy | dd/MM/yyyy
... ... ..
HDFS 文件 2 包含需要在操作符之间执行的数据
Data 1 | Data 2 | DATE data | other data......
Data 1 | Data 2 | DATE data | other data......
Data 1 | Data 2 | DATE data | other data......
Data 1 | Data 2 | DATE data | other data......
...
我需要用 HDFS 文件 1 中的“更改日期”的值更改 HDFS 文件 2 的“日期数据”
如果且仅当
HDFS 文件 2 中的“DATE 数据”介于 HDFS 文件 1 的“开始日期”和“结束日期”之间
基本上是SQL查询where子句中的一个Between Operation
在 hadoop 中解决此问题的最佳或适当方法是什么。
我应该写 HIVE 还是 PIG 还是使用 HBASE 来解决这个问题?
我随便和一位 Hadoop 顾问讨论了他所说的编写自定义 Map Reduce 作业将更加灵活和更快的执行。
此外,它还有助于设计。
我这样做基本上是为了执行 ETL 操作。
请提出最佳方法以及如何通过自定义 Map reduce 来完成此操作
编程。
【问题讨论】:
-
与 HDFS 文件 2 相比,您的 HDFS 文件 1 有多大?
标签: java hadoop parallel-processing mapreduce hbase