去年先后学习了MongoDB与Hadoop,后来因为需要,研究了下如何实现Hadoop与MongoDB的连接,即使用Hadoop从MongoDB中读取数据,处理得到想要的数据后再写入MongoDB中。当时由于对MapReduce编程还不是很熟悉,因此还是花了几天时间。后来完整地看了下MapReduce编程,才明白其实只要定义好自己的输入输出格式类,是可以实现从任何数据库(只要有相应的Java API)读取数据,处理后再进行写入的。
配置过程很简单,只需要一个mongo-hadoop-core.jar即可。关键就在于这个driver在网上很难下载到对应的版本,因此需要下载mongo-hadoop-driver自己编译。下载完并解压后,修改build.sbt中的 This.build=自己的Hadoop版本号,然后执行./sbt package,如果网速一般的话可能需要很久。
这个过程可能需要联网下载一些内容,并且可能需要翻墙。