为什么 Hive 和 HiveServer2 需要 mapred.InputFormat?

Why do Hive & HiveServer2 Require mapred.InputFormat?

我只是想确保我没有遗漏任何东西。我正在为 Hive 开发一个 InputFormat 来处理我们特定的 hdfs 文件格式。我刚刚意识到它需要扩展 mapred.InputFormat 而不是 mapreduce.InputFormat

这样对吗?或者我错过了什么?我可以使用 mapreduce 包中的 FileInputFormat 吗?

您将不得不使用 mapred.InputFormat Hive 尚未完全迁移到新包。如果你 need/want 出于任何原因使用 mapreduce.InputFormat 包,你总是可以包装 mapreduce.InputFormat。事实上,这就是我为了让它与 Hive 交互而做的,但仍然利用 mapreduce 包。

编辑:为了在两种类型的API之间进行互操作,我将读取文件记录的逻辑抽象为另一个class并在两种InputFormats中使用它.