我们有以下场景:
我们有一个用java实现的map-reduce processes
链。目前,我们正在从mysql表中读取数据,并将输出保存到另一个mysql table
。现在,我们可能需要另一个表中的数据作为映射/减少过程的输入。
可能的解决方案:
a) 要么我们可以有一个连接查询来输入到地图流程或
b) 我们可以通过制作简单的jdbc connection
并一次又一次地请求数据来读取所需的数据(尽管我不喜欢它)。
问题:
在这种情况下,最佳做法是什么?我们将来可能会转到mongoDB
。在这种情况下,最佳实践是什么?
可以使用SQOOP和HIVE。
您可以使用SQOOP将数据从mysql表传输到HDFS,然后再传输到HIVE。从HIVE(操作后),您可以将表导出回Mysql。
示例:
- 首先下载mysql-connector-java-5.0.8并将jar放入Sqoop的lib和bin文件夹
- 在配置单元中创建具有确切字段名称和类型的表定义如mysql
sqoop import--verbose--由","终止的字段--connectjdbc:mysql://localhost/test--表员工--配置单元导入--warehouse-dir/user/hive/dowarehouse--以","结尾的字段--按id拆分--配置单元表员工
点击此链接以获取参考
我认为这目前是不可能的。