我们计划使用REST API调用从端点接收数据并将数据存储到HDFS。 REST调用以周期性方式(每天或每小时)完成。
我已经使用Flume完成了Twitter摄取,但我不认为使用Flume会适合我当前的用例,因为我没有在Twitter中使用像这样的连续数据,而是使用离散的常规时间限制调用
我现在的想法是使用自定义Java来处理REST API调用并保存到HDFS,然后在该Java jar上使用Oozie协调器。
我想听听有关设计和基于Hadoop的组件用于此用例的建议/替代方案(如果比我现在想的更容易)。如果你觉得我可以坚持使用Flume,那么请告诉我如何做到这一点。
答案 0 :(得分:3)
如Apache Flume网站所述:
Apache Flume是一个分布式,可靠且可用的系统,用于有效地收集,聚合和将大量日志数据从多个不同来源移动到集中式数据存储。
正如您所看到的,归因于Flume的功能之一是收集数据。由于HttpSource
,AvroSurce
,ThriftSource
等,“类似推送或类似发送”的数据源易于集成。在您的情况下,必须让数据“主动”从基于http的服务中拉出来,整合并不是那么明显,但可以做到。例如,使用ExecSource
运行脚本获取数据并将其推送到Flume代理。
如果您使用专有代码来负责提取数据并将其写入HDFS,这样的设计就可以了,但是您将缺少一些有趣的内置Flume特性(可能您必须自己实现) ):