关系数据库和 Hadoop 之间数据来回迁移?用Sqoop就挺合适的。它靠MapReduce干活,速度快,还容错。你想一次导个几十万条数据?没压力。

Sqoop的安装也不麻烦,Ubuntu 下直接sudo apt-get install sqoop就能搞定。别看它名字老土,功能真不赖,导入、导出、建 Hive 表、跑 SQL 样样都行。

sqoop help看看命令列表就一目了然,像import就是从数据库搬数据到 HDFS 的关键命令。想并发导入?加个--m参数就行。默认存的路径是/user/${user.name}/${tablename},你也可以自定义,挺灵活的。

要是你嫌单表导入麻烦,那就上import-all-tables,一口气把整个库搬进去,舒服。还支持增量导入,只拉新增数据,效率高不少。

了,也可以导出回数据库,用sqoop export,配好路径和表名就能跑。再配合job命令定时调度,省心。顺手提一句,sqoop1sqoop2稳定点,生产建议用前者。

如果你正做大数据,又要跟MySQLOracle打交道,Sqoop真的挺香的。多试几次,参数组合熟了,效率能提升不少。