我的项目需要从HDFS公开REST服务,目前我们正在处理HDFS上的大量数据,我们正在使用MR作业将所有数据从HDFS存储到Apache-Impala数据库以满足我们的报告需求。
目前我们有一个REST端点击中Impala数据库,但问题是Impala数据库没有使用HDFS的最新数据进行全面更新。
我们定期运行MR作业来更新Impala数据库,但是由于我们知道MR将耗费大量时间,因此我们无法在HDFS上执行实时查询。
用例/情景:好的,让我详细解释一下;我们有一个名为" duct"这个应用程序构建在hadoop之上,处理大量数据并在每次运行时在HDFS上创建单独的存档(序列化avro文件)。我们有另一个应用程序(比如名称是Avro-To-Impala),它将这些AVRO存档作为输入,使用MR作业处理它们,并在每个"管道上填充Impala上的新架构。 run.This工具读取AVRO文件并在Impala架构上创建和填充表。为了在外部公开数据(REST端点),我们在Impala数据库上进行中继。在这种情况下,每当我们输出" duct"最终更新我们明确运行的数据库" Avro-To-Impala"这个处理花费很长时间,因为REST端点将过时或旧数据返回给Web服务的使用者。
有人可以为这类问题提出解决方案吗?
非常感谢