我需要将 couchbase 数据迁移到 HDFS,但 db 和 Hadoop 集群彼此无法访问。所以我不能以推荐的方式使用 sqoop。有没有办法使用 sqoop 将 couchbase 数据导入本地文件(而不是 HDFS)。如果可能的话,我可以这样做,然后使用 ftp 传输本地文件,然后再次使用 sqoop 将它们传输到 HDFS。
如果这是一个糟糕的解决方案,那么有没有其他方法可以传输本地文件中的所有 cb 数据。在这个 cb 集群上创建视图是一项艰巨的任务,我想避免使用它。
替代解决方案(可能不那么优雅,但它有效):
您可以使用 Couchbase 安装附带的 cbbackup 实用程序将所有数据导出到备份文件。默认情况下,备份实际上是以 SQLite 格式存储的,因此您可以将它们移动到您的 Hadoop 集群,然后使用任何 JDBC SQLite 驱动程序通过 Sqoop 从每个 *.cbb 文件中单独导入数据。其实前段时间我写了一篇关于这个的博客,你可以看看。
为了帮助您入门,这里是众多JDBC SQLite 驱动程序之一。
您可以使用 couchbase kafka 适配器将数据从 couchbase 流式传输到 kafka,并且可以将 kafka 中的数据存储在您喜欢的任何文件系统中。CouchbaseKafka 适配器使用 TAP 协议将数据推送到 kafka。