在MRJob中连接HIVE

时间:2016-11-28 23:09:10

标签: hadoop hive mrjob

场景是我需要处理文件(输入),对于每个记录,我需要检查输入文件中的某些字段是否与存储在Hadoop集群中的字段匹配。

我们想到使用MRJob处理输入文件并使用HIVE从hadoop集群中获取数据。我想知道我是否可以在MRJob模块中连接HIVE。如果是这样怎么做?

如果不是满足我要求的理想方法。

我是Hadoop,MRJob和Hive的新手。

请提供一些建议。

1 个答案:

答案 0 :(得分:0)

“匹配存储在Hadoop集群中的字段。” - >你的意思是你需要搜索这个文件中是否存在字段?

关于您需要扫描多少个文件?

一种解决方案是加载HBase表中的每个项目,并为输入文件中的每个记录加载“GET”表中的记录。如果GET成功,那么记录存在于HDFS的其他地方,否则就不存在。您需要为每个HBase记录使用唯一标识符,并且输入文件中也应存在相同的标识符。

您也可以连接到Hive,但架构需要严格,以便能够将所有HDFS文件加载到单个Hive表中。 HBase并不真正关心列(只需要ColumnFamilies)。 MapReduce和Hive的另一个缺点是,与HBase(接近实时)相比,速度会很低。

希望这有帮助。