在Hadoop中使用外部Web服务数据

时间:2015-05-09 11:20:39

标签: hadoop cloudera oozie hortonworks-data-platform

我计划通过Hadoop框架实现以下要求。

  • 我有40%的数据存放在SQL Server数据库中
  • 我有20%的数据可通过网络服务获取
  • 剩下的40%通过其他数据库提供。

来自三个来源的数据需要连接在一起以形成第四个数据集,我需要发送到2个系统 - 一个通过Webservice调用,另一个通过直接数据库导入。

为了实现上述功能,我计划使用我们已有的Hadoop平台。可以通过Sqoop管理数据库的拉取和推送。通过Hive编写的SQL查询来管理转换。所有这些都是通过Oozie工作流程精心策划的。

在完整的事情中,我希望获得帮助的是 -

一个。直接调用Web服务从hadoop获取数据是一种好方法吗?或者,我是否应该根本不使用hadoop,如果它涉及从外部Web服务获取数据?我不相信,因为有办法使它工作,但我希望你的意见。

湾如果这种方法很好,我该如何实现呢?一种选择是提供可以调用Web服务并将响应写入HDFS位置的oozie操作。还有其他更好的选择吗?

1 个答案:

答案 0 :(得分:0)

为web服务自定义一个InputFormat和记录阅读器,通过这种方式,hadoop只是将其视为正常输入。首先要做的是找到一种将webservice中的输入拆分成小型的好方法,因为mapreduce会启动与inputsplits一样多的任务。

同时,可能已经为您提供了jdbc inputformat