我刚刚开始使用Hadoop,我正在努力弄清楚如何使用不是文件的其他输入源,即从AWS SimpleDB读取所有行,或从另一个系统上的REST API读取所有记录。网上的一切都只显示如何处理文件或几个选定的数据库。
InputFormat的API看起来相当复杂,所以我试图找出从任何非文件数据源读取数据的最快方法,然后可以使用Amazon的Elastic MapReduce(基于Hadoop)进行MapReduce。我用JAVA写代码。
谢谢!
最快的方法是使用一些数据聚合工具,如Flume或Chukwa。你可以在这里找到一个很好的例子,关于如何使用Twitter API通过Flume收集Twitter数据。它展示了如何使用Flume将twitter数据读取到Hadoop集群,然后使用Hive对其进行处理。如果你需要的话,你可以写你自己的MR作业来做这个。尝试为这些事情设计一个自定义的InputFormat真的需要一些工作,我不认为你会在这方面找到很多帮助(除非有人已经这样做了,并准备与你分享)。
HTH