我可以在Hadoop中使用HCatInputFormat和MultipleInputs吗?

时间:2014-05-16 12:58:45

标签: hadoop mapreduce hive hcatalog

我试图在两个数据集之间进行连接,一个存储在Hive表中,另一个不存储。我看到根据人们所做的这不是很正常,因为他们要么将所有内容定义为Hive表,要么他们不是。

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

我可以在那里使用输入格式并尝试将表名伪装成路径,但这听起来像是一个疯狂的猜测。

有一个针对较新版本的Hive的补丁(我在CDH4上,所以这意味着hive 0.10和hcat 0.5悲伤)。我发现这个补丁并不是很直接转换成我当前的版本,而且似乎只适用于多个表而不是它们的混合。

https://issues.apache.org/jira/browse/HIVE-4997

这可能或有任何建议吗?

我唯一能想到的就是在不使用表格的情况下阅读原始数据,但这意味着逻辑优于hive特定格式我宁愿避免。

2 个答案:

答案 0 :(得分:0)

这里的解决方案显然是升级到0.14.0(或修补旧版本)或不使用HCatalog但直接读取Metastore并手动将每个分区子目录添加到MultipleInputs。

就个人而言,由于我不能轻易升级而且子分区工作太多,我只是专注于以其他方式优化工作,并且暂时不要运行一系列工作。

答案 1 :(得分:0)

有没有办法在单独的mapreduce程序中单独实现补丁。似乎Patch仍未提交,但我想在我的工作中使用该解决方案。