我可以在Hadoop中将HCatInputFormat与多个输入一起使用吗?

我可以在Hadoop中将HCatInputFormat与多个输入一起使用吗?,hadoop,mapreduce,hive,hcatalog,Hadoop,Mapreduce,Hive,Hcatalog,我正在尝试在两个数据集之间进行连接,一个存储在配置单元表中,另一个不存储在配置单元表中。根据人们所做的,我看到这不是很正常,比如,他们要么将所有东西定义为蜂巢表,要么不定义 现在有了MultipleInputs类,但是addInputPath方法采用配置,Path,InputFormat,Mapper 我可以使用那里的输入格式,并尝试将表名伪装成路径,但这听起来充其量只是一个猜测 新版本的Hive有一个补丁(我在CDH4上,这意味着Hive 0.10和hcat 0.5)。我发现这个补丁不太容易翻

我正在尝试在两个数据集之间进行连接,一个存储在配置单元表中,另一个不存储在配置单元表中。根据人们所做的,我看到这不是很正常,比如,他们要么将所有东西定义为蜂巢表,要么不定义

现在有了MultipleInputs类,但是addInputPath方法采用配置,Path,InputFormat,Mapper

我可以使用那里的输入格式,并尝试将表名伪装成路径,但这听起来充其量只是一个猜测

新版本的Hive有一个补丁(我在CDH4上,这意味着Hive 0.10和hcat 0.5)。我发现这个补丁不太容易翻译成我当前的版本,而且似乎只适用于多个表,而不是它们的混合

这可能吗?或者你有什么建议吗


我能想到的唯一一件事是在不使用表的情况下读取原始数据,但这意味着我宁愿避免特定于配置单元格式的逻辑。

这里的解决方案显然是升级到0.14.0(或修补旧版本)或者不使用HCatalog,而是直接读取元存储并手动将每个分区子目录添加到多个输入中


就我个人而言,由于我无法轻松升级,而且子分区的工作量太大,所以我只专注于以其他方式优化作业,目前不喜欢运行一系列作业。

HCatMultipleInputs可用于读取多个配置单元表

下面是一个补丁(适用于0.13),我们可以考虑安装它以支持多表。它有HCatMultipleInputs来支持多个配置单元表

示例用途: HCatMultipleInputs.addInput(作业,表1,db1,属性1,映射器1.class); 您可以在以下链接中使用工作代码:

有没有一种方法可以在单独的mapreduce程序中单独实现补丁。似乎该修补程序尚未提交,但我想在我的工作中使用该解决方案。

在0.14.0中如何实现?看起来修补程序从未提交过(当我发布这篇文章时,它应该在那里,也许他们后来意识到他们遗漏了它,但你似乎是对的,我已经有一段时间没有使用大数据了,蜂巢可能会死亡吗?没有得到维护吗?我想spark就是它现在所在的位置。我在问题中发布了相同的链接,确切地说,为什么我不想把它作为一个解决方案,我没有回答。)这是如何解决我的问题的。 Example useage: HCatMultipleInputs.addInput(job,Table1, db1, properites1, Mapper1.class);