场景:我们在网络上面有多台MySql数据库,我们想要使用Hadoop处理数据库中的数据。
对于如何处理现在有两种意见:
1. 要把数据从Mysql中取出,然后导入到Hadoop的集群(集群和Mysql数据库服务器不在同一个地方)中,然后进行处理,将处理的结果存储到Mysql数据库或者是Hbase中。
2. 直接用Hadoop操作数据库。使用Hadoop的DBInputFormat读取数据库中的数据。具体的是这样的,就是将Mysql数据库所在的服务器,部署成Hadoop集群的一个节点。在Hadoop分配任务时,将任务分配到有相应数据的节点上,在通过API取数据,并执行数据分析的操作。
我现在是认为,第二种不太可行,但是我的大多数同学和老师都支持第二种,我就想问一下,这两种应该哪种更适合。还有就是第二种,我记得那个操作数据库的API,是在Job启动的时候就已经配置好了吧,每次只能使用一个数据库中的数据吧。時代互聯DOMAIN tnet.hk
求解惑,谢谢了
更多 0